OpenCSV:如何从POJO创建具有自定义列标题和自定义列位置的CSV文件?
我创建了一个 MappingsBean 类,其中指定了 CSV 文件的所有列。接下来,我解析 XML 文件并创建映射 bean 列表。然后,我将该数据作为报告写入CSV文件。
我使用以下注释:
public class MappingsBean {
@CsvBindByName(column = "TradeID")
@CsvBindByPosition(position = 0)
private String tradeId;
@CsvBindByName(column = "GWML GUID", required = true)
@CsvBindByPosition(position = 1)
private String gwmlGUID;
@CsvBindByName(column = "MXML GUID", required = true)
@CsvBindByPosition(position = 2)
private String mxmlGUID;
@CsvBindByName(column = "GWML File")
@CsvBindByPosition(position = 3)
private String gwmlFile;
@CsvBindByName(column = "MxML File")
@CsvBindByPosition(position = 4)
private String mxmlFile;
@CsvBindByName(column = "MxML Counterparty")
@CsvBindByPosition(position = 5)
private String mxmlCounterParty;
@CsvBindByName(column = "GWML Counterparty")
@CsvBindByPosition(position = 6)
private String gwmlCounterParty;
}
然后我使用类写入CSV文件:StatefulBeanToCsv
File reportFile = new File(reportOutputDir + "/" + REPORT_FILENAME);
Writer writer = new PrintWriter(reportFile);
StatefulBeanToCsv<MappingsBean> beanToCsv = new
StatefulBeanToCsvBuilder(writer).build();
beanToCsv.write(makeFinalMappingBeanList());
writer.close();
这种方法的问题在于,如果我用于控制位置,那么我无法生成列名。如果我使用,那么我无法设置列的位置。@CsvBindByPosition(position = 0)
@CsvBindByName(column = "TradeID")
有没有办法同时使用这两个批注,以便我可以创建带有列标题的 CSV 文件并控制列位置?
问候, 维克拉姆·帕塔尼亚