我有一个.csv文件,其中每列的数据格式如下
TEST;"TEST1";"TEST2";"TEST3";"TEST4"。
我需要将.csv文件转换为.xlsx文件,其中每个值应位于不同的列中。例如:参见附图。
我尝试使用 Apache POI,但它只是转换为.xlsx格式,但数据保留在一列中。
谁能分享一下示例代码吗?
csv 中的示例输入
下面是示例输出结果,应为 xlsx 格式。

这是一个简单的示例(没有异常处理、编码、文件路径等),可以处理带有分号的 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)
| 归档时间: |
|
| 查看次数: |
5306 次 |
| 最近记录: |