This library provides an easy way to convert Excel files (.xlsx
, .xls
, .xlsm
, etc.) to CSV format using custom
options such as specifying a sheet, delimiter, datetime format, and destination. It uses a Rust-powered backend for
efficient processing.
To use this library, install the required NPM package by running:
# Using npm
npm install xlsx-to-csv
# Using yarn
yarn add xlsx-to-csv
Make sure to have the binary executable for the conversion process set up as per your platform requirements.
Converts an Excel file to CSV format with customizable options.
-
filePath
(string
): Path to the Excel file you want to convert. -
options
(ConvertFileOptions
, optional): An object containing various settings to customize the conversion process.
The options object allows you to configure the conversion with the following fields:
Field | Type | Description | Default |
---|---|---|---|
sheet |
string |
Sheet name to convert. If not provided, the first sheet will be used. | First sheet |
delimiter |
string |
Delimiter to use in the CSV file. You can choose between ; , , , or any custom delimiter string. |
; |
dest |
string |
Destination file path. If set to 'return' , it will return the CSV data as a string. If not specified, it will print to stdout . |
stdout |
datetimeFormat |
string |
Format for parsing datetime values in the sheet. Follows the chrono format documentation. | %Y-%m-%d %H:%M:%S |
import {convertFile} from 'your-library-name';
// Convert an Excel file to CSV and save it to a specific path
convertFile('example.xlsx', {
sheet: 'Sheet1',
delimiter: ',',
dest: 'output.csv',
datetimeFormat: '%d-%m-%Y %H:%M'
});
// Convert an Excel file to CSV and return the result as a string
const csvData = convertFile('example.xlsx', {
sheet: 'Sheet1',
delimiter: ';',
dest: 'return',
datetimeFormat: '%Y-%m-%d'
});
console.log(csvData);
This library internally runs a binary command with the following mappings:
Option | CLI Argument |
---|---|
filePath |
--file <filePath> |
sheet |
--sheet <sheet> |
delimiter |
--delimiter <delimiter> |
dest |
--dest <dest> |
datetimeFormat |
--datetime-format <format> |
- The library supports a variety of Excel formats (
.xlsx
,.xls
,.xlsm
,.xlsb
). - For
datetimeFormat
, it uses the popular chrono crate for flexible and powerful date formatting options.
- The maintainer is founder of PlayCode.io - an online code playground for web development.
- Javascript Online Compiler - Run your javascript code online.
- Install Node.js and NPM on your system.
- Clone the repository and install the dependencies using
yarn install
. - Install Rust and Cargo on your system.
- Try running the project locally using
cargo build
. - Prepare for cross-compilation by installing the required targets.
- Windows: https://gist.github.com/Mefistophell/9787e1b6d2d9441c16d2ac79d6a505e6
- Linux:
rustup target add x86_64-unknown-linux-gnu
- MacOS M*:
rustup target add aarch64-apple-darwin
- MacOS Intel:
rustup target add x86_64-apple-darwin
- Update vim ~/.cargo/config.toml with the following:
[target.x86_64-unknown-linux-gnu] linker = "x86_64-unknown-linux-gnu-gcc" [target.x86_64-pc-windows-gnu] linker = "x86_64-w64-mingw32-gcc"
This project is licensed under the MIT License.
Feel free to open an issue or contribute to the repository if you encounter any bugs or have feature suggestions!