Skip to content

ExcelFlow: AI-powered Excel assistant with natural language processing. Chat with your spreadsheets using OpenAI GPT-4o, perform operations, and get insights through a modern React + FastAPI web interface. Real-time updates via WebSockets.

License

Notifications You must be signed in to change notification settings

parthvadhadiya/ExcelFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExcelFlow - AI-Powered Excel Assistant

ExcelFlow Logo

FastAPI React OpenAI Python JavaScript License: MIT

An interactive web application for managing and analyzing Excel sheets using OpenAI's GPT models. This app allows users to ask natural language questions about their Excel file, perform updates, summarize data, and more — all with the help of a conversational AI.

If you find this project useful, please consider giving it a star ⭐ on GitHub!


🚀 Features

  • Chat with your Excel Sheet: Ask questions, filter data, make edits, and get summaries in plain English.

  • Read & Update Cells/Ranges: Read individual cells or ranges, update data, insert/delete rows and columns, and more.

  • Summarization: Quickly get sums, averages, mins, and maxes for any range of numbers.

  • Find & Replace: Perform powerful find-and-replace operations over the whole sheet or just a selected area.

  • OpenAI GPT-4o Integration: Advanced reasoning and understanding through OpenAI's GPT models and function calling.

  • Real-time Updates: See changes to your Excel file in real-time as the AI makes modifications.

  • Modern Web Interface: React-based frontend with a responsive design for a great user experience.

  • WebSocket Communication: Real-time bidirectional communication between the frontend and backend.


🏗️ Architecture

The application is split into two main components:

Backend (FastAPI)

  • RESTful API for file uploads and data retrieval
  • WebSocket server for real-time communication
  • Excel manipulation utilities
  • OpenAI integration for natural language processing

Frontend (React)

  • Modern React application built with Vite
  • Interactive spreadsheet view using React Data Grid
  • Real-time chat interface
  • File upload functionality

🛠️ Setup

Backend Setup

  1. Navigate to the backend directory:

    cd backend
  2. Install dependencies:

    pip install -r requirements.txt
  3. Create and fill your .env file in the backend directory:

    OPENAI_API_KEY=your_openai_key
  4. Run the backend server:

    uvicorn app.main:app --reload

Frontend Setup

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Run the development server:

    npm run dev
  4. Open your browser and navigate to:

    http://localhost:3000
    

📝 Usage

  1. Upload an Excel file through the web interface
  2. View your spreadsheet in the main area
  3. Use the chat interface on the right to interact with the AI
  4. Ask questions or give commands about your data
  5. Watch as changes are reflected in real-time in the spreadsheet view

Example Commands

  • "What's the sum of sales in column C?"
  • "Find all cells containing 'Product X' and replace with 'Product Y'"
  • "Insert a new row at position 5"
  • "Calculate the average of cells B5:B15"
  • "Add a total row at the bottom of the sheet"
  • "Sort column D in descending order"
  • "Highlight all cells with values greater than 100"

📊 Demo

Coming Soon!

🔧 Advanced Configuration

Environment Variables

Backend (.env file):

OPENAI_API_KEY=your_openai_key
DEBUG=True  # Optional for verbose logging

Customizing the AI Model

You can change the OpenAI model used by modifying the model parameter in backend/app/agent.py:

response = self.client.chat.completions.create(
    model="gpt-4o",  # Change to your preferred model
    messages=all_messages,
    tools=self.tools,
    tool_choice="auto"
)

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👨‍💻 Author

Parth Vadhadiya


If you found this project helpful, please consider giving it a star! ⭐

About

ExcelFlow: AI-powered Excel assistant with natural language processing. Chat with your spreadsheets using OpenAI GPT-4o, perform operations, and get insights through a modern React + FastAPI web interface. Real-time updates via WebSockets.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published