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

时间:2016-09-07 15:34:57

标签: java excel csv

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

3 个答案:

答案 0 :(得分:0)

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

阅读this SO post了解导入CSV时如何保留前导零的多种方法。您可以做一些简单的操作,例如将相关列格式化为固定宽度文本。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

这应该保留前导零:

  

值1; =&#34; 001234&#34 ;;值3

请注意,如果没有=,该字段将作为包含分隔符的引用字段(而不是字符串)处理。