#! /usr/bin/env runjs requireJAR('commons-csv-1.4.jar'); requireJAR('poi-3.15.jar'); var FileOutputStream = java.io.FileOutputStream; var StringUtil = Packages.me.hatter.tools.commons.string.StringUtil; var CSVParser = Packages.org.apache.commons.csv.CSVParser; var CSVFormat = Packages.org.apache.commons.csv.CSVFormat; var HSSFWorkbook = Packages.org.apache.poi.hssf.usermodel.HSSFWorkbook; var HSSFSheet = Packages.org.apache.poi.hssf.usermodel.HSSFSheet; var HSSFRow = Packages.org.apache.poi.hssf.usermodel.HSSFRow; var HSSFCell = Packages.org.apache.poi.hssf.usermodel.HSSFCell; var Cell = Packages.org.apache.poi.ss.usermodel.Cell; var main = () => { if ($ARGS == null || $ARGS.length == 0) { println('convertcsv2xls.js - Convert CSV to Excel.') println(); println('ERROR: NO arguments assigned!'); println('convertcsv2xls.js filename.csv [filename.xls]'); return; } var csvFile = $$.file($ARGS[0]); if (!csvFile.exists()) { println('[ERROR] File not exists: ' + $ARGS[0]); return; } var xlsFile = ($ARGS.length > 1)? $ARGS[1]: (StringUtil.substringBeforeLast(csvFile.getName(), '.') || csvFile.getName()) + '.xls'; var book = new HSSFWorkbook(); var sheet = book.createSheet('new sheet'); println('Read CSV file: ' + csvFile); var parser = CSVParser.parse(csvFile, $$.charset('UTF-8'), CSVFormat.EXCEL); $EACH(parser, (record, index) => { println('Write excel row: ' + index); var row = sheet.createRow(index); $EACH(record, (item, cellIndex) => { var cell = row.createCell(cellIndex); cell.setCellType(Cell.CELL_TYPE_STRING); cell.setCellValue($$.str(item)); }); }); println('Write excel file: ' + xlsFile); var fout = new FileOutputStream(xlsFile); book.write(fout); fout.close(); }; main();