在Java中使用单列标题创建CSV

时间:2015-06-15 11:20:57

标签: java csv header

如何在Java中创建CSV文件并将标题数据设置为单列而不是逗号分隔?例如:

A列= Header1

B列= Header2

然后在每个标题下面写下数据:

Header1 Header2

Text1 Text2

请问任何一个例子? 非常感谢提前。

2 个答案:

答案 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块正确编写代码。