【问题标题】:Export Datatable to Excel and send it via email without saving the Excel first将数据表导出到 Excel 并通过电子邮件发送,无需先保存 Excel
【发布时间】:2014-01-16 15:03:24
【问题描述】:

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

【问题讨论】:

  • System.Net.Mail.Attachment 有一个带有 IO.Stream 的构造函数。
  • 我的问题不是邮件部分,是我如何创建excel而不保存它,创建一个方法来创建excel并返回一个流,但不知道如何创建一个Excel流Office.Interop

标签: c# excel email datatable office-interop


【解决方案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");
    // ...
}

(注意此代码未经测试)

【讨论】:

  • 好吧,我试图不使用另一个库(按照命令),但我会试一试EPPlus,然后尝试说服上层管理
  • 好吧,我结束了使用 EPPlus,感谢@TimSchmelter 的建议,EPPlus 有很多选项可以保存或任何您想对 excel 文件执行的操作,我使用了 package.GetAsByteArray(),谢谢再次
猜你喜欢
  • 1970-01-01
  • 2015-10-05
  • 1970-01-01
  • 2018-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多