我有一个.csv
文件,其中的数据格式如下
每列TEST;"TEST1";"TEST2";"TEST3";"TEST4"
。
我需要将.csv
文件转换为.xlsx
文件,其中每个值应该在不同的列中。例如:见附图。
我尝试使用Apache POI,但它只是转换为.xlsx
格式,但数据仍保留在一列中。
你们有没有人可以分享示例代码。
csv中的示例输入
以下是xlsx格式的样本输出结果
答案 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"