DataTable to Excel 没有专门的库?

DataTable to Excel without special library?

有没有什么简单的方法可以从 DataTable 创建 Excel 文件而不使用像 ClosedXML 这样的特殊库?

我试过以下代码:

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);
    }
}

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

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

现在回到您的问题,要生成 Excel 文件,您有多种选择:

  1. 使用外部库(这不是你想要的)
  2. 使用 Excel 互操作库(与 Excel 一起安装,或者可用一个小的 redistributable package