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

时间:2013-04-03 06:16:16

标签: c# asp.net excel epplus

我正在使用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

1 个答案:

答案 0 :(得分:2)

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发行版中有许多示例供您参考。