我有List<ArrayList<String>>
对象,我想用java将它们逐列写入csv文件。
List<ArrayList<String>> contains
[[fileName, abc.sldprt, pqr.sldprt, jku.sldprt, cmx.sldprt, abc.sldprt],
[cadName, abc.sldprt, pqr.sldprt, jku.sldprt, cmx.sldprt, abc.sldprt],
[number, abc.sldprt, pqr.sldprt, jku.sldprt, cmx.sldprt, abc.sldprt],
[folder_Id, 098123, 098124, 094123, 0981290, 09812354],
[Directory_Path, 098123, 098124, 094123, 0981290, 09812354],
[wC_State, Working, WIP, Released, Development, Working],
[legacy_Path, C:\WC, C:\WC, C:\WC, C:\WC, C:\WC],
[reverified, Empty, Empty, Empty, Yes, Empty],
[createdBy, 12132019, 12092019, 12072019, 12132018, 12132019],
[originDate, 12132019, 12092019, 12072019, 12132018, 12132019],
[iteration, 2, 8, 13, 19, 3],
[shouldImport, True, True, True, True, True],
[Mymap, True, True, True, True, True],
[YourMap, True, True, True, True, True]]
到目前为止我已经尝试过下面的代码
String csv = "C:\\Users\\Output.csv";
CSVWriter writer = null;
try {
writer = new CSVWriter(new FileWriter(csv),'|',CSVWriter.NO_QUOTE_CHARACTER,
CSVWriter.DEFAULT_ESCAPE_CHARACTER,
CSVWriter.DEFAULT_LINE_END);
for(ArrayList<String> each: databaseColListHeaderChange){
writer.writeNext(each.toArray(new String[each.size()]));
}
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
我正在 csv 文件中按行获取数据。 有没有办法将 ArrayList 按列写入 csv 文件中
现在我得到以下格式的 csv 文件
fileName|abc.sldprt|pqr.sldprt|jku.sldprt|cmx.sldprt|abc.sldprt
cadName|abc.sldprt|pqr.sldprt|jku.sldprt|cmx.sldprt|abc.sldprt
number|abc.sldprt|pqr.sldprt|jku.sldprt|cmx.sldprt|abc.sldprt
folder_Id|098123|098124|094123|0981290|09812354
Directory_Path|098123|098124|094123|0981290|09812354
wC_State|Working|WIP|Released|Development|Working
legacy_Path|C:\WC|C:\WC|C:\WC|C:\WC|C:\WC
reverified|Empty|Empty|Empty|Yes|Empty
createdBy|12132019|12092019|12072019|12132018|12132019
originDate|12132019|12092019|12072019|12132018|12132019
iteration|2|8|13|19|3
shouldImport|True|True|True|True|True
Mymap|True|True|True|True|True
YourMap|True|True|True|True|True
我需要以下格式的数据
fileName|cadName|number|folder_Id|Directory_Path
abc.sldprt|abc.sldprt|abc.sldprt|098123|098123
pqr.sldprt|pqr.sldprt|pqr.sldprt|098124|098124
jku.sldprt|jku.sldprt|jku.sldprt|094123|094123
cmx.sldprt|cmx.sldprt|cmx.sldprt|0981290|0981290
abc.sldprt|abc.sldprt|abc.sldprt|09812354|09812354
...so on all the list
请问有什么建议或帮助吗?
最佳答案
您需要将数据标准化为映射,其中键将是您的第一个 arrayList 条目,值将是列表的其余部分。
{
fileName=[abc.sldprt, pqr.sldprt, jku.sldprt, cmx.sldprt, abc.sldprt],
cadName=[abc.sldprt, pqr.sldprt, jku.sldprt, cmx.sldprt, abc.sldprt],
...
}
然后使用 map 键作为标题
关于java - 有没有什么方法可以通过在java中使用 "|"作为分隔符来按列写入csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55814036/