有没有简单的方法可以在不使用像ClosedXML这样的特殊库的情况下从DataTable创建Excel
文件?
我尝试过以下代码:
using (StreamWriter sw = new StreamWriter(pathAndFilename, false))
{
for (int i = 0; i < datatable.Columns.Count; i++)
{
colum = datatable.Columns[i];
sw.Write(colum);
if (i < datatable.Columns.Count - 1)
sw.Write(",");
}
sw.Write(sw.NewLine);
foreach (DataRow dr in datatable.Rows)
{
for (int i = 0; i < datatable.Columns.Count; i++)
{
colum = datatable.Columns[i];
if (!Convert.IsDBNull(dr[i]))
sw.Write(dr[i]);
if (i < datatable.Columns.Count - 1)
sw.Write(",");
}
sw.Write(sw.NewLine);
}
}
但是,此代码会将一行的所有内容写入每行的第一个单元格。
答案 0 :(得分:0)
您的代码未生成 Excel 文件,而是生成 CSV 文件。
当您说它在一行上写下所有内容时,可能是因为区域设置使用(,
而不是;
)作为分隔符。
现在回到你的问题,要生成一个Excel文件,你有几个选择: