Skip to content

A simple tool to combine multiple Excel files into a single workbook. Each worksheet in the merged file will be named after its source file.

Notifications You must be signed in to change notification settings

hppanpaliya/excel-merger

Repository files navigation

Excel Merger

A modern web application built with React and Vite that allows users to merge multiple Excel (.xlsx) files into a single workbook. Each source file becomes a separate worksheet in the merged workbook, maintaining formatting and styles.

Excel Merger Screenshot

Live Demo

https://hppanpaliya.github.io/excel-merger/

Features

  • πŸ”„ Drag and drop interface for file selection
  • πŸ“Š Supports .xlsx format files
  • 🎨 Preserves original formatting and styles
  • πŸŒ“ Dark/Light mode with system preference detection
  • ⚑ Dynamic loading of Excel processing library
  • πŸ“± Responsive design for all screen sizes

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18.0.0 - v20.18.1)
  • npm (v9.0.0 or higher) or yarn

Installation

  1. Clone the repository:
git clone https://github.com/hppanpaliya/excel-merger.git
cd excel-merger
  1. Install dependencies:
npm install
# or
yarn

Development

To start the development server:

npm run dev
# or
yarn dev

The application will be available at http://localhost:5173

Building for Production

To create a production build:

npm run build
# or
yarn build

To preview the production build:

npm run preview
# or
yarn preview

Project Structure

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ ExcelMerger/
β”‚   β”‚   β”œβ”€β”€ index.jsx
β”‚   β”‚   β”œβ”€β”€ InfoSection.jsx
β”‚   β”‚   β”œβ”€β”€ FileDropZone.jsx
β”‚   β”‚   β”œβ”€β”€ StatusMessage.jsx
β”‚   β”‚   └── ThemeToggle.jsx
β”œβ”€β”€ hooks/
β”‚   └── useDarkMode.js
β”œβ”€β”€ utils/
β”‚   └── excelUtils.js
└── styles/
    └── animations.css

Technical Details

  • Framework: React 18
  • Build Tool: Vite
  • Styling: Tailwind CSS
  • Excel Processing: ExcelJS
  • Icons: Lucide React
  • Code Quality: ESLint
  • Performance: Dynamic imports for Excel processing

File Requirements

  • Files must be in .xlsx format
  • Each input file must contain exactly one worksheet
  • Worksheet names are derived from file names (max 31 characters)
  • Special characters in file names are replaced with underscores

Browser Support

The application supports all modern browsers:

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)

Scripts

  • npm run dev - Start development server
  • npm run build - Create production build
  • npm run preview - Preview production build
  • npm run lint - Run ESLint
  • npm run clean - Clean build directory

Dependencies

Production

  • react: ^18.3.1
  • react-dom: ^18.3.1
  • exceljs: ^4.4.0
  • lucide-react: ^0.469.0

Development

  • vite: ^6.0.5
  • @vitejs/plugin-react-swc: ^3.5.0
  • tailwindcss: ^3.4.17
  • eslint: ^9.17.0
  • autoprefixer: ^10.4.20
  • postcss: ^8.4.49

Contributing

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

License

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

Acknowledgments


Made with ❀️ by Harshal Panpaliya

About

A simple tool to combine multiple Excel files into a single workbook. Each worksheet in the merged file will be named after its source file.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published