54 lines
1.9 KiB
JavaScript
54 lines
1.9 KiB
JavaScript
#! /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();
|