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!
-
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.
The application is split into two main components:
- RESTful API for file uploads and data retrieval
- WebSocket server for real-time communication
- Excel manipulation utilities
- OpenAI integration for natural language processing
- Modern React application built with Vite
- Interactive spreadsheet view using React Data Grid
- Real-time chat interface
- File upload functionality
-
Navigate to the backend directory:
cd backend
-
Install dependencies:
pip install -r requirements.txt
-
Create and fill your
.env
file in the backend directory:OPENAI_API_KEY=your_openai_key
-
Run the backend server:
uvicorn app.main:app --reload
-
Navigate to the frontend directory:
cd frontend
-
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open your browser and navigate to:
http://localhost:3000
- Upload an Excel file through the web interface
- View your spreadsheet in the main area
- Use the chat interface on the right to interact with the AI
- Ask questions or give commands about your data
- Watch as changes are reflected in real-time in the spreadsheet view
- "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"
Coming Soon!
Backend (.env file):
OPENAI_API_KEY=your_openai_key
DEBUG=True # Optional for verbose logging
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"
)
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Parth Vadhadiya
- Website: https://parthvadhadiya.netlify.app/
- LinkedIn: https://www.linkedin.com/in/parth-vadhadiya/
- GitHub: @parthvadhadiya