如何在Java中创建CSV文件并将标题数据设置为单列而不是逗号分隔?例如:
A列= Header1
B列= Header2
然后在每个标题下面写下数据:
Header1 Header2
Text1 Text2
请问任何一个例子? 非常感谢提前。
答案 0 :(得分:1)
使用uniVocity-parsers撰写CSV:
CsvWriterSettings settings = new CsvWriterSettings(); //many options here. Check the documentation
settings.getFormat().setDelimiter('|');
CsvWriter writer = new CsvWriter(new FileWriter(new File("path/to/output.csv")), settings);
writer.writeHeaders("Header A", "Header B");
//write rows individually
writer.writeRow("string 1", "string 2");
writer.writeRow(234, new BigDecimal(111));
//or write a list of rows in bulk
List<Object[]> yourRows = yourMethodToBuildRowsWithData();
writer.writeRowsAndClose(yourRows);
似乎您可以使用TSV而不是CSV来生成更容易可视化的列,由制表符分隔。在这种情况下,只需用 TsvWriterSettings 和 TsvWriter
替换 CsvWriterSettings 和 CsvWriter披露:我是这个图书馆的作者。它是开源和免费的(Apache V2.0许可证)。
答案 1 :(得分:0)
最后,我找到了一个简单的解决方案,如何创建CSV文件并将标题和值存储在单独的列中。我们需要的例子是:
ColumnA ColumnB
Value1 Value2
我没有使用任何库,使用Java的FileWriter我做了以下操作。将逗号分隔符从(,)更改为(;),如下例所示。
private static final String COMMA_DELIMITER =“;”;
然后定义列名和其他示例代码。
private static final String FILE_HEADER = " **ColumnA; ColumnB**";
FileWriter fileWriter = null;
fileWriter = new FileWriter("your_csv_file.csv");
// Write the CSV file header
fileWriter.append(FILE_HEADER.toString());
// Add a new line separator after the header
fileWriter.append(NEW_LINE_SEPARATOR);
fileWriter.append(“Value1”);
fileWriter.append(COMMA_DELIMITER);
fileWriter.append(“Value2”);
fileWriter.append(NEW_LINE_SEPARATOR);
fileWriter.flush();
fileWriter.close();
请注意,您必须使用try-catch和finally块正确编写代码。