netas-csv2xlsx
v1.0.0
Published
JavaScript csv to spreadsheet (xlsx) converter
Downloads
5
Readme
csv2xlsx
JavaScript csv to spreadsheet (xlsx) converter. Converts columns automatically to the correct column type and formats the data as a table, which allows simple filtering of data.
parameter documentation
Csv2Xlsx.convertCsv(csvUrl, filename, metaData, charset, updateFn, returnAsLink, csvSeparator, formatCodes)
@param {String} csvUrl URL to fetch the csv from
@param {String} filename of the generated file
@param {Object} metaData metaData of the generated xlsx
> .title
> .subject
> .creator
> .company
> .lastModifiedBy
> .created (Date object, default to now)
> .modified (Date object, default to now)
@param {String} charset charset of CSV, default to Windows-1252
@param {Function} updateFn you can set a callback function to receive status informations.
@param {Bool} returnAsLink false, to return a Blob url as string instead of a <a> element
@param {String} csvSeparator csv separator, null for auto
@param {Object} formatCodes excel format codes. defaults to
> .date: 'dd.mm.yyyy'
> .datetime: 'dd.mm.yyyy hh:mm'
> .number: '0'
> .float: '0.0'
@return {Promise} which resolves to {String|Element} Blob URL or Element depending on {returnAsLink}, default to String
example code
async function downloadAsExcel() {
const cvrt = await import('src/Csv2Xlsx.js');
// Meta-Data of the xlsx
const metaData = {
title: 'My Demo Spreadsheet',
subject: 'A Demo for CSV to XLSX',
creator: 'John Doe',
company: 'Super Doe Ltd.',
lastModifiedBy: 'John Doe',
created: new Date(2020, 0, 1, 11, 21),
modified: null // now
};
// download the csv and convert it to a excel file
const aTag = await cvrt.Csv2Xlsx.convertCsv('my/demo/data.csv', 'mynewfilename.xlsx', metaData);
// return value is a <a> element, add it to the DOM to start the download
document.body.appendChild(aTag);
// start the download automatically
aTag.click();
}
browser support
the latest versions of
- Firefox (Gecko)
- Chrome/Edge (Blink)
- Safari (Webkit)
demo
check out _demo/demo.html for a simple demo
license
Copyright © 2024 Lukas Buchs, netas.ch, Apache License, Version 2.0.
used third party code
- https://github.com/Neovici/nullxlsx Copyright © 2020 Neovici, Apache License 2.0
- https://github.com/FlatFilers/csvjson-csv2json Copyright © 2019 Martin Drapeau, MIT License