我使用下一个代码将datagridView中的数据导出到xls文件中。
private void ToCsV(DataGridView dGv, string filename)
{
var stOutput = "";
// Export titles:
var sHeaders = "";
for (var j = 0; j < dGv.Columns.Count; j++)
sHeaders = sHeaders + Convert.ToString(dGv.Columns[j].HeaderText) + "\t";
stOutput += sHeaders + "\r\n";
// Export data.
for (var i = 0; i < dGv.RowCount - 1; i++)
{
var stLine = "";
for (var j = 0; j < dGv.Rows[i].Cells.Count; j++)
stLine = stLine + Convert.ToString(dGv.Rows[i].Cells[j].Value) + "\t";
stOutput += stLine + "\r\n";
}
var utf16 = Encoding.GetEncoding(1254);
byte[] output = utf16.GetBytes(stOutput);
var fs = new FileStream(filename, FileMode.Create);
var bw = new BinaryWriter(fs);
bw.Write(output, 0, output.Length); //write the encoded file
bw.Flush();
bw.Close();
fs.Close();
}
结果我得到了&#34;坏&#34;格式化文件:
我不知道为什么文件内容是这样的(有些文字不在右栏中)。有什么建议吗?感谢。
是否可能,因为单元格的某些文本有&#34; newLine&#34; \n
?
答案 0 :(得分:0)
使用双引号将所有值(或至少是潜在问题的值)括起来。而不是123\n
将"123\n"
放入csv文件中。
在csv文件中使用小数点分隔符时,大多数情况下会遇到此问题,如解释here。您的\n
案例看起来很相似。