UNPKG

scrapper-tools

Version:

Its in development but I use it in all my web automation project.

41 lines (32 loc) 986 B
import fs from 'fs-extra' import csv from 'csv-parse/lib/sync' import xlsx from 'xlsx' export default function convertCsvToXlsx(source: string, destination: string) { if (typeof source !== 'string' || typeof destination !== 'string') { throw new Error( `"source" and "destination" arguments must be of type string.`, ) } // source exists if (!fs.existsSync(source)) { throw new Error(`source "${source}" doesn't exist.`) } // read source const csvFile = fs.readFileSync(source, 'UTF-8') // csv parser options const csvOptions = { columns: true, delimiter: ',', ltrim: true, rtrim: true, } // get records const records = csv(csvFile, csvOptions) // prepare the xlsx workbook const wb = xlsx.utils.book_new() // insert the records as a sheet const ws = xlsx.utils.json_to_sheet(records) xlsx.utils.book_append_sheet(wb, ws) // write the xlsx workbook to destination xlsx.writeFile(wb, String(destination)) }