如何在epplus工作表中添加HTML

本文关键字:添加 HTML 工作 epplus | 更新日期: 2023-09-27 18:07:06

我正在使用c#将HTML报告导出到excel中。我写我所有的HTML响应(Response.Write())随着css和下载excel和它的工作很好。现在我需要将它的HTML部分分离到单独的表格中。

我该怎么做呢?我可以通过EPPlus做吗?

Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Buffer = true;
Response.ContentType = "application/ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=EntryPlanningReport.xls");            
Response.Write(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">");
Response.Write("<head><style type='text/css'>" + strBuilder.ToString() + "</style></head>");            
Response.Write("<div id='contentTitle'> Entry Planning Report </div><br />");
Response.Write(ReportSelectionHtml + "<br />"); 
Response.End();  

上面的代码在单个表中工作得很好,因为你可以看到我正在注入我的CSS文件文本。对于多个表格,我切换到EPPlus

如何在epplus工作表中添加HTML

EPPlus是一个创建Excel文件的好方法,但是有一些限制。

正如您注意到的,您不能简单地将单元格的值设置为一些HTML代码,并期望在生成的Excel文件中接收格式化的文本。EPPlus支持富文本单元格值,但是必须使用方法调用来构造这些值,以打开和关闭文本值的不同部分的格式。应用于整个单元格的格式将分别处理。

我写了一些实用程序,用于将一些非常基本的HTML转换为EPPlus富文本对象,您可以在这里找到它,它可能会有所帮助:

https://github.com/JanKallman/EPPlus/issues/154

也就是说,根据你上面的评论,看起来你试图在单个Excel单元格中嵌入整个。这是不可能的。如果你不能在Excel中做某件事,你也不能在EPPlus中做。如果要在Excel中创建表格,则工作表的每个单元格应对应于表格中的一个单元格。例如:

ws2.Cells[1, 1].Value = "Brach Name";
ws2.Cells[1, 2].Value = "data";

在单元格上设置颜色和其他样式的方式与设置值的方式类似,EPPlus发行版中有许多示例可供参考。