没有特殊库的DataTable到Excel?

时间:2015-05-06 12:15:49

标签: c# .net excel export export-to-excel

有没有简单的方法可以在不使用像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);
    }
}

但是,此代码会将一行的所有内容写入每行的第一个单元格。

1 个答案:

答案 0 :(得分:0)

您的代码未生成 Excel 文件,而是生成 CSV 文件。
当您说它在一行上写下所有内容时,可能是因为区域设置使用(,而不是;)作为分隔符。

现在回到你的问题,要生成一个Excel文件,你有几个选择:

  1. 使用外部库(不是您想要的)
  2. 使用Excel互操作程序库(随Excel安装,或可用小redistributable package