【问题标题】:opening the csv with Excel with the leading zero without stripping [duplicate]用Excel打开csv,前导零不剥离[重复]
【发布时间】:2017-01-15 09:22:40
【问题描述】:

我正在创建一个包含数据的 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 excel csv


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        这应该保留前导零:

        value1;="001234";value3

        请注意,如果没有 =,该字段将被视为可能包含分隔符的带引号字段(而不是字符串)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-05
          • 1970-01-01
          • 2010-09-06
          • 1970-01-01
          • 1970-01-01
          • 2015-08-25
          • 2018-05-19
          • 2015-08-28
          相关资源
          最近更新 更多