11

我正在使用 apache commons CSV 来编写 csv 文件。我想坚持这个图书馆。当我正在编写一个 csv 文件时,在生成文件的第一列中,它包含双引号作为引号字符,其他列按预期生成。

我真的很想在这里去掉双引号。请在下面找到相同的代码。

CSVFormat format = CSVFormat.DEFAULT;
FileWriter fw = new FileWriter("Temp.csv");
CSVPrinter printer = new CSVPrinter(fw, format);

String[] temp = new String[4];

for(int i=0; i<4; i++) {
    if(i==1)
        temp[0] = "#";
    else
        temp[0] = "";
    temp[1] = "hello" + (i+1);
    temp[2] = "";
    temp[3] = "test";

    Object[] temp1 = temp[]
    printer.printRecord(temp1);
}

fw.close();
printer.close();

临时文件

"",hello1,,test
"#",hello2,,test
"",hello3,,test
"",hello4,,test

我不希望在每一行的开头都有一个引号字符。我只想要一个不带引号的空字符串,与第 3 列相同。有人可以帮忙吗?

4

2 回答 2

8

这是一个已知的问题。您可以在 apache commons csv 问题跟踪器中为它投票:

https://issues.apache.org/jira/browse/CSV-63

于 2015-07-07T07:26:29.863 回答
8

在 lars 问题跟踪中提到,尝试将 CSVFormat 设置为以下,

final CSVFormat csvFileFormat = CSVFormat.DEFAULT.withEscape('\\').withQuoteMode(QuoteMode.NONE);

于 2018-02-01T15:35:30.817 回答