我正在创建一个包含数据的csv文件,但是当用Excel MS打开它时,所有前导零都被剥离。我应该在csv文件中写什么来防止这种情况发生?
我的代码的一部分
for (int i=0; i < rows.size(); i++) {
Object[] row = (Object[]) rows.get(i);
bufferedWriter.write(row[0]);
bufferedWriter.write(";" + row[1]);
bufferedWriter.write(";" + row[2]);
bufferedWriter.write(";" + row[3]);
bufferedWriter.write(";" + row[4]);
if(row[4].startsWith("0")){
//I want to add something here tp prevent that to happen.
}
bufferedWriter.write(";" + row[5]);
bufferedWriter.write(";" + row[6]);
try { bufferedWriter.write(";" + DF.format(row[7])); }
catch (Exception ex) { bufferedWriter.write(";0"); }
try { bufferedWriter.write(";" + DF.format(Double.parseDouble(row[8]))); }
catch (Exception ex) { bufferedWriter.write(";0"); }
String text = (row[9] != null) ? row[9].replace(';', ',') : "";
bufferedWriter.write(";" + text);
bufferedWriter.writeLine(";" + row[10]);
}
答案 0 :(得分:0)
这不是一个完整的答案,但我不认为这必然是一个Java问题,至少不完全是。假设您将 string 数据写入包含所需前导零的CSV文件,那么当您将此数据导入Excel时,所有这些信息仍应存在。
阅读this SO post了解导入CSV时如何保留前导零的多种方法。您可以做一些简单的操作,例如将相关列格式化为固定宽度文本。
答案 1 :(得分:0)
如果我以这种方式添加它,它对我有用。
"\"\t"+ row[4] + "\"\t";
答案 2 :(得分:0)
这应该保留前导零:
值1; =&#34; 001234&#34 ;;值3
请注意,如果没有=
,该字段将作为包含分隔符的引用字段(而不是字符串)处理。