CSV 到 XLXS 格式,数据在 java 中

use*_*322 -2 java apache-poi

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

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

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

谁能分享一下示例代码吗?

csv 中的示例输入
输入样本

下面是示例输出结果,应为 xlsx 格式。
输出样本

Wür*_*paß 5

这是一个简单的示例(没有异常处理、编码、文件路径等),可以处理带有分号的 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();
Run Code Online (Sandbox Code Playgroud)

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

TEST;"TEST1";"TEST2";"TEST3";"TEST4"
TEST;"TEST5";"TEST6";"TEST7";"TEST8"
Run Code Online (Sandbox Code Playgroud)

Output.xlsx 如下所示: 在此输入图像描述