当前位置: 首页 > 知识库问答 >
问题:

如何在java的OpenCSV中使用CSVWriter编写CSV文件时包装单元格?

夏侯枫
2023-03-14

我正在尝试将XML文件转换为CSV。解析XML并进行转换。在写入CSV文件时,我遇到了问题。如果数据具有“新行”(即,\n或\r),则它将作为新数据出现在下一个记录中。因此,我无法使用OpenCSV CSVWriter生成正确的文档。我需要包装单元格,以便它可以访问/写入该单元格中的数据。

CSVWriter(new FileWriterWithEncoding(csvFile,StandardCharsets.UTF_8,true),",",'\u0000',CSVWriter.NO_ESCAPE_CHARACTER,"\n");

在CSVWriter之上,我创建并写入如下数据:

public static boolean writeIntoCSVFile(CSVWriter writer, String[] cdrList) throws Exception {
        writer.writeNext(cdrList);
        writer.flush();
        return true;
    }

输入XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<customers>
    <customer>
        <customers_email_address>abcd@gmail.com
        </customers_email_address>
    </customer>
    <customer>
        <customers_email_address>efgh@gmail.com
        </customers_email_address>
    </customer>
</customer>

预期输出:

+++++++++++++++
abcd@gmail.com

+++++++++++++++
efgh@gmail.com

+++++++++++++++

如果能得到帮助,我们将不胜感激。

共有1个答案

池赞
2023-03-14

我不知道为什么OpenCsv没有编写您需要的格式,但单声部解析器可以做到这一点。你可以这样做:

//configure the format as you want
CsvWriterSettings settings = new CsvWriterSettings();
settings.trimValues(false);
settings.getFormat().setLineSeparator("\n");

//create a CSV writer with the settings
CsvWriter writer = new CsvWriter(new File("/path/to/your.csv"), "UTF-8", settings);

然后更新您的方法:

public static void writeIntoCSVFile(CsvWriter writer, String[] cdrList){
    writer.writeRow();
}

完成后,打电话

writer.close();

希望这有帮助

披露:我是这个图书馆的作者。它是开源和免费的(Apache 2.0许可证)

 类似资料:
  • 本文向大家介绍Java中使用opencsv读写csv文件示例,包括了Java中使用opencsv读写csv文件示例的使用技巧和注意事项,需要的朋友参考一下 OpenCSV是一个简单的用于解析CSV文件的java类库,它封装了CSV格式文件的输出和读入,可以自动处理CSV格式中的特殊字符,最重要的是OpenCSV可以用于商业化(commercial-friendly)。具体的使用方法: 读CSV文件

  • 我试图使用库编写一个简单的代码,但它有一个奇怪的问题。 代码: 预期产出: 实际产出: 正如我们所见,在2、3和4周围有双引号,但在输出中,双引号是重复的。 我不想这样,我尝试了几个选项和类的构造函数,但没能解决这个问题。 有人面临过类似的问题或知道出路吗? 谢谢

  • 我想使用OpenCSV库将CSV文件导入到JTable中。网上找到的所有例子都与命令行显示有关,这里找到的唯一代码不起作用,因为JTable需要Object[][]和String[]: 来源:将csv导入JTable 有没有办法用这个库把这些文件显示在一个表格里?

  • 我必须编写一个代码,该代码必须能够将列(数组字符串[]的值)和该列的头写入CSV文件。在这两种情况下,当列不存在时,以及当已经有一个名为输入值文件的文件时,它必须将列写入到一个output.csv文件中。我当然想在同一个文件上读写。代码如下:

  • 问题内容: 我正在尝试在NetBeans 6.0.1中使用OpenCSV解析.csv文件。我的文件包含一些Unicode字符。当我在输出中写入字符时,字符以其他形式显示,例如(HJ1’-E /;)。当我在记事本中打开此文件时,它看起来还可以。 我使用的代码: 问题答案: 首先,您需要知道文件的编码格式,例如UTF-8或UTF-16。生成此文件的原因是什么? 在那之后,它相对简单- 您需要创建一个包