将Datatable导出到Excel并通过电子邮件发送,而不先保存Excel

时间:2014-01-16 15:03:24

标签: c# excel email datatable office-interop

我需要将一些信息(以.net数据表格式)导出到Excel,然后通过电子邮件发送该信息。我在这里发现How to export DataTable to Excel in C#,效果很好,但其中一个要求是不保存Excel,发送流而不是文件本身,有什么想法吗?因为我找到的所有示例都是首先保存Excel文件。

1 个答案:

答案 0 :(得分:1)

我不确定,但我认为Office.Interop不能这样做。

为什么不使用EPPlusDataTable加载Excel。它有LoadFromDataTable方法和Stream属性:

using (var package = new OfficeOpenXml.ExcelPackage())
{
    var sheet = package.Workbook.Worksheets.Add("Sheetname");
    sheet.Cells["A1"].LoadFromDataTable(tblData, true, OfficeOpenXml.Table.TableStyles.Medium6);
    var excelAttachment = new System.Net.Mail.Attachment(package.Stream, "Excelname");
    // ...
}

(请注意,此代码未经过测试)