我正在尝试构建一个从数据库中提取一些数据的应用程序,然后使用一些数据创建一个 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/