在 java 中使用 apache commons 编写 CSV 时包括双引号
Including double quotes while writing CSV using apache commons in java
我正在使用 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();
Temp.csv
"",你好1,测试
"#",hello2,测试
"",hello3,测试
"",hello4,测试
我不想在每一行的开头使用引号字符。我只想要一个不带引号的空字符串,与第 3 列中的相同。有人可以帮忙吗?
这是一个已知问题。您可以在 apache commons csv 问题跟踪器中为其投票:
lars issue tracking中提到,尝试将CSVFormat设置为如下,
final CSVFormat csvFileFormat = CSVFormat.DEFAULT.withEscape('\').withQuoteMode(QuoteMode.NONE);
我正在使用 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();
Temp.csv
"",你好1,测试
"#",hello2,测试
"",hello3,测试
"",hello4,测试
我不想在每一行的开头使用引号字符。我只想要一个不带引号的空字符串,与第 3 列中的相同。有人可以帮忙吗?
这是一个已知问题。您可以在 apache commons csv 问题跟踪器中为其投票:
lars issue tracking中提到,尝试将CSVFormat设置为如下,
final CSVFormat csvFileFormat = CSVFormat.DEFAULT.withEscape('\').withQuoteMode(QuoteMode.NONE);