如何在epplus工作表中追加HTML?

我正在使用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是创buildExcel文件的好方法,但有一些限制。

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

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

https://hg.codeplex.com/forks/richardtallent/rst02/rev/73f7dad1c501

也就是说,基于上面的评论,看起来你正试图在一个Excel单元格中embedded整个表格 。 这是不可能的。 如果您无法在Excel中执行某些操作,则无法在EPPlus中执行此操作。 如果要在Excel中创build表格,工作表的每个单元格都应该对应于表格中的一个单元格。 例如:

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

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