Asp.Net和c#Html页面导出到Excel图表图像

时间:2017-08-23 20:27:53

标签: export-to-excel

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

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

    Html Page screenshot

1 个答案:

答案 0 :(得分:1)

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

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

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

4. 使用Interop,您不仅可以导出html,还需要逐步构建Excel文件,添加工作表,添加单元格并添加图表。是的,你也可以嵌入图表。但是不建议在服务器端使用Interop
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数据,但是图表需要单独添加。