将数据表导出到Excel工作表

时间:2012-11-23 13:03:55

标签: asp.net excel export-to-excel export-to-csv

我想将数据从数据表导出到Excel文件。我需要将文件保存在服务器上。我正在使用该项目的控制台应用程序。

3 个答案:

答案 0 :(得分:0)

if (DtReqDetails != null)
 {
    string attachment = "attachment; filename=History.xls";
    Response.ClearContent();
    Response.AddHeader("content-disposition", attachment);
    Response.ContentType = "application/vnd.ms-excel";
    string tab = "";
    foreach (DataColumn dc in DtReqDetails.Columns)
    {
      Response.Write(tab + dc.ColumnName);
      tab = "\t";
    }
    Response.Write("\n");
    int i;
    foreach (DataRow dr in DtReqDetails.Rows)
   {
      tab = "";
      for (i = 0; i < DtReqDetails.Columns.Count; i++)
       {
        Response.Write(tab + dr[i].ToString());
        tab = "\t";
       }
       Response.Write("\n");
   }
   Response.End();
  }

答案 1 :(得分:0)

由于您没有提到是否安装了excel,我建议EPPlus创建excel文件。它有一个方便的方法LoadFromDataTable

using (var pck = new ExcelPackage())
{
    var ws = pck.Workbook.Worksheets.Add("Worksheet-Name");
    ws.Cells["A1"].LoadFromDataTable(dataTable1, true, OfficeOpenXml.Table.TableStyles.Medium1);
    using(var fileStream = File.Create(path))
        pck.SaveAs(fileStream);
}

编辑我刚刚看到你标记了 export-to-csv

var lines = dataTable1.AsEnumerable()
    .Select(r => string.Join(",", r.ItemArray));
string csv = string.Join(Environment.NewLine, lines);

File.AppendAllText(path, csv);

答案 2 :(得分:0)

如果您使用的是MS SQL,则它们具有内置procedure,用于将表格导出到Excel电子表格。无需编码。