Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSV到XLXS格式,带有java格式的数据_Java_Apache Poi - Fatal编程技术网

CSV到XLXS格式,带有java格式的数据

CSV到XLXS格式,带有java格式的数据,java,apache-poi,Java,Apache Poi,我有一个.csv文件,其中的数据格式如下 测试;“测试1”;“测试2”;“测试3”;“TEST4”在每列中 我需要将.csv文件转换为.xlsx文件,其中每个值应位于不同的列中。例:见附图 然而,我尝试使用ApachePOI,它只是转换成.xlsx格式,但数据保留在一列中 你能和任何人分享示例代码吗 csv中的示例输入 以下是输出结果示例,应为xlsx格式。 下面是一个简单的示例(无异常处理、编码、文件路径等),它可以用分号处理CSV(在这种情况下,CSV转换为“字符分隔文件”),并创建Xsl

我有一个
.csv
文件,其中的数据格式如下
测试;“测试1”;“测试2”;“测试3”;“TEST4”
在每列中

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

然而,我尝试使用ApachePOI,它只是转换成
.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();
Output.xlsx如下所示:

分号(;)不是逗号(,)。csv表示逗号分隔values@Lino:如果数据包含用于输入的逗号/换行符/etcThanks,则需要双引号。。我已将数据格式附加到现有的.csv文件中。输出结果也是我附加的。POI将把数据放在你告诉它的任何列中。因此,您的工作就是拆分输入数据并将其分发到所需的列上。谢谢。您是否有相同的示例代码。这将有助于我理解这样做的过程。谢谢,它有一定的效果,但输出每行都包含“TEST”。它应该是唯一的测试。我尝试在上面的代码段中操作item变量,但是它的值仍然作为“TEST”存在,并且我无法删除excel列中的“&send only TEST”。你能在这里给出建议吗?@user3406322如果你的代码输出与上面描述的不一样,你应该进行一些调试或记录以找出原因。谢谢你的朋友!!!。我已经在您的示例代码中解决了这个问题,并且能够得到预期的结果。
TEST;"TEST1";"TEST2";"TEST3";"TEST4"
TEST;"TEST5";"TEST6";"TEST7";"TEST8"