用Excel打开带有前导零的csv而不剥离

我正在创build一个包含数据的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]); } 

这不是一个完整的答案,但我不认为这是Java的问题,至less不是完全的。 假设您将string数据写入包含所需前导零的CSV文件,那么当您将这些数据导入到Excel时,所有这些信息都应该在那里。

阅读这个SOpost ,了解如何在导入CSV时保留前导零。 您可能可以做一些简单的事情,如将固定宽度文本格式化为有问题的列。

所以如果我以这种方式添加它,它对我来说很有用。

 "\"\t"+ row[4] + "\"\t"; 

这应该保留前导零:

值1; = “001234”;值3

请注意,如果没有= ,那么该字段将作为可能包含分隔符的引用字段(而不是string)进行处理。