我正在尝试使用openCSV
java库在csv文件中编写一些公式数据,但它只写了每个单元格中大约90%的字符串。有没有可能导致这种行为的已知问题?OpenCSV写入限制
public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
FileOutputStream fosW = new FileOutputStream("C:\\Users\\Desktop\\formula.csv");
OutputStreamWriter osw = new OutputStreamWriter(fosW, "UTF-8");
CSVWriter writerCSW = new CSVWriter(osw);
int k = 0;
String[] b = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT"};
String[] line = new String[100];
for (int i = 0; i < b.length - 1; i++) {
String a = "=IF(legend!" + b[i] + "$3='Form responses 1'!" + b[i + 1] + "2,legend!" + b[i + 1] + "$3,IF(legend!" + b[i] + "$4='Form responses 1'!" + b[i + 1] + "2,legend!" + b[i + 1] + "$4,IF(legend!" + b[i] + "$5='Form responses 1'!" + b[i + 1] + "2,legend!" + b[i + 1] + "$5,IF(legend!" + b[i] + "$6='Form responses 1'!" + b[i + 1] + "2,legend!" + b[i + 1] + "$6,IF(legend!" + b[i] + "$7='Form responses 1'!" + b[i + 1] + "2,legend!" + b[i + 1] + "$7,IF(legend!" + b[i] + "$8='Form responses 1'!" + b[i + 1] + "2,legend!" + b[i + 1] + "$8,#error#))))))";
System.out.println(a);
line[k] = a;
k++;
}
writerCSW.writeNext(line);
}
嗨。我认为你认为行[]中的每个索引在你的csv中是1行。实际上,您使用它的方式,line []在您的CSV文件中实际上是1个条目。查看API文档,writeNext获取CSV文件中代表1行的数组。所以基本上,您需要重构您的代码以在for循环中编写每行。 – pandaadb
@pandaadb我知道它会写在一行中的所有内容,这就是我的意图 –