CSV到XLXS格式,包含java中的数据

时间:2017-12-29 10:10:26

标签: java apache-poi

我有一个.csv文件,其中的数据格式如下 每列TEST;"TEST1";"TEST2";"TEST3";"TEST4"

我需要将.csv文件转换为.xlsx文件,其中每个值应该在不同的列中。例如:见附图。

我尝试使用Apache POI,但它只是转换为.xlsx格式,但数据仍保留在一列中。

你们有没有人可以分享示例代码。

csv中的示例输入 input sample

以下是xlsx格式的样本输出结果 output sample

1 个答案:

答案 0 :(得分:2)

这是一个简单的例子(没有异常处理,编码,文件路径......),可以用分号处理CSV(在这种情况下csv转换为“字符分隔文件”)并创建一个Xslx文件:

//open input file
BufferedReader br = new BufferedReader(new FileReader("input.csv"));
//create sheet
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet();
//read from file
String line = br.readLine();
for (int rows=0; line != null; rows++) {
    //create one row per line
    Row row = sheet.createRow(rows);
    //split by semicolon
    String[] items = line.split(";");
    //ignore first item
    for (int i=1, col=0; i<items.length; i++) {
        //strip quotation marks
        String item = items[i].substring(1, items[i].length()-1);
        Cell cell = row.createCell(col++);
        //set item
        cell.setCellValue(item);
    }
    //read next line
    line = br.readLine();
}
//write to xlsx
FileOutputStream out = new FileOutputStream("Output.xlsx");
wb.write(out);
//close resources
br.close();
out.close();

给出一个像这样的input.csv:

TEST;"TEST1";"TEST2";"TEST3";"TEST4"
TEST;"TEST5";"TEST6";"TEST7";"TEST8"

Output.xlsx如下所示: enter image description here