【问题标题】:How to export 'date lookalike' text columns to csv如何将“日期相似”文本列导出到 csv
【发布时间】:2010-11-17 20:24:55
【问题描述】:

我编写了用于将数据导出到 csv 文件的 .net 代码。问题是其中一列的数据类似于 5-8-13

当我在 excel 中双击 .csv 文件时,此列将数据显示为 2013 年 5 月 8 日,即它被误解为不是我想要的日期列。导出时是否可以使用一些转义字符,以便在打开文件时列数据为 5-8-13

我曾尝试将此值放在双引号中,但这不起作用。

感谢任何帮助。谢谢

【问题讨论】:

    标签: .net excel csv export


    【解决方案1】:

    将单引号作为单元格中的第一个字符。然后它将被解释为文本。

    【讨论】:

    • 如果我在导出代码中添加单引号并打开 csv 文件,那么单引号是可见的(例如:'5-8-13)。但是,如果我在没有单引号的情况下打开文件,然后在每个单元格中添加单引号,那么您的逻辑就可以工作。 excel 文件非常大,无法修改单个单元格。该列中的所有单元格也可能没有数据。此外,每个导出可能有不同的数据但相同的列。有更好的方法吗?
    • 如果您没有以编程方式修改数据,那么您要么手动修改数据,要么以编程方式识别非日期。后者似乎已经过时了,对吧?如果您可以确定哪些看起来像日期的单元格不是真正的日期,那么您可以运行 VBA 宏将单元格标记为文本,然后您就可以设置了。
    • 问题是我将数据导出到 .csv 文件并将此文件发送给外部用户。该用户不是技术人员。我在想是否有办法以正确的格式导出数据(.net 代码),这样用户就不必编写或运行宏。谢谢!
    • 然后我会在现场进行更改并向非技术用户发送 .XLS 文件,而不是 CSV 文件。或者您可以找出另一种方法来格式化有问题的数据。为什么是 00-00-00?
    • 从问题中可以清楚地看出,提问者是以编程方式导出数据,而不是在 Excel 中手动摆弄它;因此添加单引号的建议不适合这种情况。
    【解决方案2】:

    没有一种简单的方法可以控制 Excel 在打开 .csv 文件时应用的格式。

    为了强制 Excel 保持您的数据格式,请按如下方式输入数据:

    ="5-8-13"
    

    它将显示为 5-8-13,但单元格中的数据将存储为 ="5-8-13"

    【讨论】:

    • 我赞成这个,因为它可能已经足够好,我真的希望它超过单引号答案。
    【解决方案3】:

    如果您要导出的数据中没有嵌入引号,则 Robert Mearns 的答案有效。如果您在使用 CSV 时没有遇到任何其他问题,这可能是一个相当安全的假设。 (如果您需要保护数据中的文字逗号、引号或换行符,则会变得更加复杂。)

    如果您渴望给最终用户留下深刻印象,可以使用一些包以编程方式生成本机 Excel 文档 (.xls)。我自己不使用.NET,所以我不知道.NET 是否有免费的。我将 xlwt 用于 Python(嗯……这大概适用于 IronPython),还有一些用于 Java、PHP 和 Perl。

    【讨论】:

      【解决方案4】:

      将“\t”添加到“5-8-13”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多