java - 使用opencsv库导出数据时如何保留零开始字符串

标签 java csv export-to-csv opencsv

我在java中使用opencsv库并导出csv。但我有问题。当我使用字符串开头零时,它看起来像:0123456,当我导出它时,删除 0,我的 csv 看起来像:123456。零丢失了。我使用的方式:

"\"\t"+"0123456"+ "\""; 但是当 csv 导出时,它看起来像: "0123456" 。我不想要它。我想要 0123456。我不想从 Excel 进行编辑,因为某些最终用户不知道如何编辑。如何使用打开的 csv 导出 csv 并保留 0 开始字符串。请帮忙

最佳答案

我认为这并不是生成 CSV 时的真正问题,而是 Excel 在通过资源管理器打开时处理数据的方式的问题。

尝试了这段代码,并在文本编辑器(不是 Excel)中查看了 CSV,请注意它显示正确,但在 Excel 中打开时,前导 0 丢失了!

CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"));
    // feed in your array (or convert your data to an array)
    String[] entries = "0123131#21212#021213".split("#");
    List<String[]> a = new ArrayList<>();
    a.add(entries);
    //don't apply quotes
    writer.writeAll(a,false);
    writer.close();

See correct leading 0s being retained in text editor

如果您确实希望在用户打开 Excel 时看到数字值的前导 0,则每个单元格条目均采用 format ="dataHere" 格式;参见下面的代码:

 CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"));
        // feed in your array (or convert your data to an array)
        String[] entries = "=\"0123131\"#=\"21212\"#=\"021213\"".split("#");
        List<String[]> a = new ArrayList<>();
        a.add(entries);
        writer.writeAll(a);
        writer.close();

这是现在从 Windows 资源管理器打开 Excel(双击)时 Excel 的显示方式:

Excel displays with leading 0s

但是现在,如果我们在文本编辑器中看到 CSV,并修改了数据以“适合”Excel 查看,它会显示为:

enter image description here

另请参阅链接: format-number-as-text-in-csv-when-open-in-both-excel-and-notepad

关于java - 使用opencsv库导出数据时如何保留零开始字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56503087/

相关文章:

linux - 使用 sed/awk 将 CSV 文件中的 IP 与端口分开

java - 在 Java 中转换为未绑定(bind)泛型

excel - Access 2013 中的类型转换失败

java - Jasypt 加密异常 : Exception in thread "main" java. lang.NoClassDefFoundError: org/jasypt/encryption/StringEncryptor

postgresql - 从 CSV 导入到 PostgreSQL 数据库时,我能否将 Unix 时间戳自动转换为 TIMESTAMP 列?

Java 将新列附加到 csv 文件

csv - 是否可以在 csv 中包含列名,并在 Snowflake 中将其复制到语句中?

python - 在带有标题的python中列出csv

java - 如何在迭代时从 "ConcurrentModificationException"中删除元素时避免 `ArrayList` ?

java - 使用 HSSFRegionUtil (Apache POI) 添加边框到合并单元格