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

Cyb*_*ist 7 c# csv excel

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

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);

}
Run Code Online (Sandbox Code Playgroud)

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

我偶然发现,如果我用百分号前缀该东西,Excel会将单元格中的值转换为百分比,所以也许有一些前缀我可以使用它来使Excel在加载它时将单元格中的值作为文本吗?

Gre*_*reg 12

您可以将数据格式化为="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);

}
Run Code Online (Sandbox Code Playgroud)

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