我需要将一些信息(以.net数据表格式)导出到Excel,然后通过电子邮件发送该信息。我在这里发现How to export DataTable to Excel in C#,效果很好,但其中一个要求是不保存Excel,发送流而不是文件本身,有什么想法吗?因为我找到的所有示例都是首先保存Excel文件。
答案 0 :(得分:1)
我不确定,但我认为Office.Interop
不能这样做。
为什么不使用EPPlus
从DataTable
加载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");
// ...
}
(请注意,此代码未经过测试)