c# - 如何创建 CSV 以便数字在电子表格中显示为字符串?

标签 c# excel csv

我正在尝试构建一个从数据库中提取一些数据的应用程序,然后使用一些数据创建一个 CSV 文件以供 Excel 加载。代码:

foreach (xOFDocInfo cm in docs)
{
    string s = bi.Agency
        + "," + cm.BatNbr.Trim()
        + "," + cm.RefNbr
        + "," + cm.DocType
        + "," + cm.OrigDocAmt.ToString()
        + "," + cm.CreateDate.ToShortDateString();

    writer.WriteLine(s);

}

“cm.BatNbr”是一个 6 个字符的零填充数字,例如“001234”。我希望 Excel 将该列格式化为文本,这样我就不会丢失前面的零。我尝试了一些技巧,例如在数字前加上单引号(撇号),但我得到的只是一个撇号前缀。如果我将单元格设置为文本格式,然后删除撇号,我也会丢失前面的零。

我无意中发现,如果我用百分号作为前缀,Excel 会将单元格中的值转换为百分比,所以也许我可以使用一些前缀来使 Excel 在以下情况下将单元格中的值作为文本我加载它?

最佳答案

您可以将数据格式化为 ="001234"。这将导致 Excel 将其显示为 001234。

foreach (xOFDocInfo cm in docs)
{
    string s = bi.Agency
        + ",=\"" + cm.BatNbr.Trim()
        + "\"," + cm.RefNbr
        + "," + cm.DocType
        + "," + cm.OrigDocAmt.ToString()
        + "," + cm.CreateDate.ToShortDateString();

    writer.WriteLine(s);

}

您也可以尝试使用 SYLK format而不是 CSV。 SYLK 让您更好地控制格式。

关于c# - 如何创建 CSV 以便数字在电子表格中显示为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398548/

相关文章:

c# - ASP.NET 用户控件 : Page_Load fires before property is set

c# - 让 ZedGraph 使用科学计数法而不是工程计数法的最简单方法是什么?

excel - Workbooks.OpenText 忽略 FieldInfo 列参数

.net - 将 HTML 导出到 Excel 的单元格背景颜色

MySQL导入CSV转换日期格式

python - 如何从使用 python 创建的 csv 文件中删除空白行

python - Pandas :ValueError:无法将 float NaN 转换为整数

c# - 发现不同版本的 "System.Runtime.CompilerServices.Unsafe"冲突无法解决

c# - Entity Framework 4 + 存储过程

excel - 删除电子表格中行的有效方法