【问题标题】:Asp.Net And c# Html page export into excel with chart imageAsp.Net 和 c# Html 页面导出到 Excel 与图表图像
【发布时间】:2017-08-24 15:12:35
【问题描述】:

我有一个用 ASP.Net 作为附件准备的网页。我想将此页面导出到服务器端的 excel 中。我试过的方法;

  1. 我使用 Response.write 获得了 Excel 格式的表格。但我不能 分配图形。
  2. 我想将图形转换为数据:base64 格式。但无法在 Excel 中显示。
  3. 我不想将图形转换为 .png 格式并链接它们,因为它必须是永久报告。可以删除链接。
  4. 我尝试在 C# 中与 Excel 进行互操作。但我无法将 HTML 表格放入单元格中。我必须写单元格。我能做到吗 在其中嵌入图像?
  5. 我怎样才能以这种方式将此 HTML 页面导出到 Excel 中?

有什么想法吗?

Html Page screenshot

【问题讨论】:

    标签: export-to-excel


    【解决方案1】:

    1. 除非将图表转换为图像,否则无法将图表导出到 html 页面。您需要构建一个不同的 html 并将图像附加到它。此解决方案不会导出真正的 Excel 文件,而是导出带有 XLS 扩展名的 HTML。大多数程序员都指责这种做法,并且当使用最新的 MS Excel 版本打开文件时,您会收到文件格式无效的警告。 MS Excel 仅识别 html 文件并将数据调整到其电子表格。

    2. 您需要将图表转换为 jpg、png、gif 图像。解决方案取决于您用于显示图表的内容。 将图表导出为图片,并在图片后面加上img标签

    3. 如果是永久报告,您可以考虑将图表保留为 png 在服务器端,而不是保存临时文件。但这可能会溢出服务器端的硬盘。这取决于您有多少报告。

    4. 使用 Interop,您不能只导出 html,您需要逐步构建 Excel 文件、添加工作表、添加单元格和添加图表。是的,您也可以嵌入图表。但不建议在服务器端进行互操作
    https://support.microsoft.com/en-us/help/257757/considerations-for-server-side-automation-of-office

    5.最佳解决方案是使用 Excel 库。这样的库有很多,你需要选择最适合你的一个:
    - Open XML SDK 用于 XLSX 文件,
    - NPOI 用于 XLS 或 XLSX 文件,
    - EPPLus 用于 XLSX 文件,
    - EasyXLS 适用于 XLS 或 XLSX 文件
    - 或您可能找到的任何其他内容。
    一些库有一些有用的方法可以让您导入 html 数据,但图表需要单独添加。

    【讨论】:

    • 谢谢,亚历克斯。我明白这并不容易。我认为是时候使用 Open XML SDK,微软的解决方案了。
    猜你喜欢
    • 1970-01-01
    • 2010-11-15
    • 2014-09-24
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多