【问题标题】:CSV exporting number with leading zeros readable in excelCSV 导出数字,前导零在 excel 中可读
【发布时间】:2011-12-05 19:51:31
【问题描述】:

是否可以影响 ruby​​ CSV 模块在引用字段之前添加等号,因此生成的 csv 在 excel 中可读并且不会丢失前导零。

目前的结果是:

ruby-1.9.2-p0 > CSV.generate_line(["01"], :force_quotes => true)
 => "\"01\"\n" 

首选是:

ruby-1.9.2-p0 > CSV.generate_line(["01"], :force_quotes => true)
 => "=\"01\"\n" 

我知道有在 excel 中导入文本文件的选项,但我想避免这种情况,只需双击文件即可打开它。

【问题讨论】:

    标签: ruby fastercsv


    【解决方案1】:

    CSV 用于生成 CSV,而不是 Excel 文件。因此,您要么需要自己对 CSV 进行猴子补丁,但出于您的目的,Spreadsheet::Excel 可能是一个更好的选择。这允许您生成本机 Excel 文件,您应该几乎能够直接设置列格式选项以匹配您正在寻找的内容:

    http://spreadsheet.rubyforge.org/file.GUIDE.html

    【讨论】:

    • 感谢您的回答。我想生成 CSV 文件,但不幸的是,它会将任何看起来像数字的东西解析为数字,无论它是否有前导零或空格。有一种解决方法,这里描述了creativyst.com/Doc/Articles/CSV/CSV01.htm#CSVAndExcel。我希望它可以通过标准库中的 CSV 来实现。
    • 当然..但是通过生成非标准 CSV 文件,您还不如创建一个 Excel 文件。但是..您也可以做generate_line(["=\"01\""], ...)...或类似的事情(使用正确的引用)。这也可以。
    • 不幸的是,generate_line(["=\"01\""], ...) 不起作用,因为等号应该在外面。我希望 CSV 可以轻松扩展以处理此问题。
    猜你喜欢
    • 2016-05-02
    • 2011-10-01
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 2021-08-25
    • 2012-07-19
    相关资源
    最近更新 更多