我正在尝试构建一个从数据库中提取一些数据的应用程序,然后使用一些数据创建一个由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使您可以更好地控制格式.
归档时间: |
|
查看次数: |
14944 次 |
最近记录: |