A web-based tool that converts tables between multiple formats including Markdown, SQL, JSON, XML, HTML, and CSV. The application supports Excel file processing, drag-and-drop functionality, and multi-language support.
Demo Online: https://tunghuynh.net/convert-md/
- Multi-format Conversion: Convert tables to/from Markdown, SQL, JSON, XML, HTML, and CSV
- Excel File Support: Process .xlsx and .xls files with multi-sheet support
- Drag & Drop Interface: Simply drag Excel files into the input area
- Copy/Paste Support: Paste table data from Excel, Google Sheets, Word, or websites
- Multi-language Support: Available in English, Vietnamese, Chinese, and Japanese
- Real-time Conversion: Auto-convert as you edit table data
- Interactive Table Editor: Add rows, edit cells directly in the interface
- Multiple Input Methods: Support for HTML tables, tab-separated, and comma-separated data
- Statistics Display: Shows row count, column count, and current file information
- Frontend: Vanilla JavaScript, HTML5, CSS3
- Libraries:
- SheetJS (xlsx) - Excel file processing
- Highlight.js - Code syntax highlighting
- Marked - Markdown parsing and rendering
- No Build Process: Pure client-side application with CDN dependencies
md/
├── index.html # Main HTML file with UI structure
├── style.css # Styling and responsive design
├── main.js # Application initialization and event handlers
├── script.js # Core application logic and translations
├── generators.js # Output format generators (Markdown, SQL, JSON, etc.)
├── excel-handler.js # Excel file processing functionality
├── table-handler.js # Table parsing and manipulation
├── translations.js # Translation data (incomplete file)
├── globals.js # Global variables and constants
├── i18n.js # Internationalization utilities
└── utils.js # Utility functions
- File Input: Users can drag & drop Excel files or paste table data
- Format Detection: Automatically detects HTML tables, tab-separated, or comma-separated data
- Sheet Selection: For multi-sheet Excel files, users can select specific sheets
- Data Parsing: Converts input data into a standardized table format
- Format Selection: Users choose output format via format buttons
- Data Conversion: Applies format-specific generators to table data
- Real-time Update: Output updates automatically when input changes
- Copy Functionality: One-click copying of generated output
| Format | Input | Output | Description |
|---|---|---|---|
| Markdown | ✅ | ✅ | GitHub-flavored markdown tables |
| SQL | ❌ | ✅ | CREATE TABLE and INSERT statements |
| JSON | ❌ | ✅ | Array of objects format |
| XML | ❌ | ✅ | Structured XML with table elements |
| HTML | ✅ | ✅ | Standard HTML table markup |
| CSV | ✅ | ✅ | Comma-separated values |
| Excel | ✅ | ❌ | .xlsx and .xls file support |
The application supports 4 languages with complete UI translation:
- 🇺🇸 English (en) - Default language
- 🇻🇳 Vietnamese (vi) - Tiếng Việt
- 🇨🇳 Chinese (zh) - 中文
- 🇯🇵 Japanese (ja) - 日本語
Language preference is automatically saved to localStorage.
- Modern web browser with JavaScript enabled
- Internet connection (for CDN dependencies)
- Clone or download the project files
- Open
index.htmlin a web browser - No build process or server setup required
- Drag an Excel file into the input area
- Select desired sheet (if multiple sheets exist)
- Choose "Markdown" format
- Copy the generated output
- Copy a table from Excel/Google Sheets
- Paste into the input area
- Select output format
- Use "Copy Output" to get converted data
- Modular Architecture: Functionality split across focused JavaScript files
- Event-Driven: Uses DOM events for user interactions
- Translation System: Centralized i18n with nested object structure
- Error Handling: Comprehensive error messages with user feedback
processExcelFile()- Handles Excel file processinggenerateOutput()- Main output format dispatcherparseHTMLTable()- Parses HTML table dataautoConvert()- Triggers automatic conversionupdateLanguage()- Handles UI language switching
The application tracks and displays:
- Number of rows and columns
- Current file name
- Processing status
- Success/error notifications
- Responsive Design: Works on desktop and mobile devices
- Drag & Drop Visual Feedback: Clear visual indicators during file operations
- Loading States: Progress indicators for file processing
- Toast Notifications: User feedback for all operations
- Auto-save Language: Remembers user's language preference
© 2025 by Tùng Huynh
If you find this tool helpful, consider buying the author a coffee.
This is a client-side web application that processes data locally in your browser. No data is sent to external servers.