使用Microsoft.Office.Interop.Excel导出到asp.net中的excel

时间:2014-02-23 05:42:44

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

我在Microsoft.com网站上使用以下示例将数据从sql server导出到Excel工作表我略微修改了示例以使用datatable作为我的版本,同时调试它循环遍历所有行但只有它显示实际excel文件中的最后一行

以下是vs 2010的代码,我确信我确实错过了一些东西

foreach (DataRow row in dt.Rows)
{
   // rowCounter++;
    workSheet.Cells[1, "A"] = row["Date"];
    workSheet.Cells[1, "B"] = row["Title"];
    workSheet.Cells[1, "C"] = row["Description"];
}
    ((Excel.Range)workSheet.Columns[1]).AutoFit();
    ((Excel.Range)workSheet.Columns[2]).AutoFit();
    ((Excel.Range)workSheet.Columns[3]).AutoFit();

我如何修改此代码以便将输出写入Download_Excel.xls文件

以上代码仅显示excel中的最后一行。 的输出 enter image description here

它不会自定义标题。

我做的两件事。

首先ROWINDEX从1开始,所以我设置ROWINDEX= 2并且工作正常

工作代码

foreach (DataRow row in dt.Rows)
{
    rowCounter++;
    workSheet.Cells[rowCounter, "A"] = row["Date"];
    workSheet.Cells[rowCounter, "B"] = row["Title"];
    workSheet.Cells[rowCounter, "C"] = row["Description"];
}

    string fileName = "Product.xls";
    excelApp.DisplayAlerts = false;
    workSheet.SaveAs(HttpContext.Current.Server.MapPath("../"+fileName));

1 个答案:

答案 0 :(得分:0)

确保沿途更改索引。现在你总是覆盖第1行,每行继续增加它。