从ASP.NET格式导出到Excel的策略?

所以这是另一个导出到Excel的问题。

我有一个页面,有一个格式化的样式表。 当我通过将ContentType设置为application / excel和Content-Disposition来附件导出页面时,我可以将表格导出到Excel(而不是CSV)。 但是,它会丢失所有的格式。 我想这是因为Excel不加载CSS,我想这是合理的。

因此,在一个场景中,我必须在networking上显示表格,并将其导出到Excel中,这两种格式都是相似的(即使不是精确的),如果不使用NPOI之类的东西,最好的方法是什么?

我试图尽量减less工作,并尽可能保持单个模板。 是否有必要创build两个单独的模板:一个是样式表,另一个是表格本身的Excelembedded式样式?

有一个单一的模板与条件格式内将是非常混乱。

有任何想法吗?

如果您还没有解决问题,我会build议您使用Microsoft Office的Open XML SDK 2.0(请参阅http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&displaylang = en )。 通过这种方式,您将能够创build一个XLSX文件,而无需在服务器上安装Excel。 XLSX文件被压缩(如ZIP文件)的XML文件的集合。 Open XML SDK 2.0可帮助您创build和更改XLSX文件为纯XML文件。 在第一次看到Open XML SDK的时候,很多东西看起来都很奇怪,但这只是一开始。 有一个如此命名的“Open XML SDK 2.0生产力工具”(Open XML SDK 2.0的一部分),可以为您生成很多有用的代码。 此外,您可以创build一个漂亮的Excel文档,您可以使用它作为您将创build的文档的原型(模板)。 所以你可以在不写大量代码的情况下解决复杂合成的问题。

查看http://msdn.microsoft.com/en-us/library/cc850837(v=office.14).aspx以获得一些示例以及http://openxmldeveloper.org/default.aspx 。 另请参见使用OpenXml sdk 2.0创buildExcel文档作为开始示例。 您可以在http://www.codeplex.com上find关于Open XML SDK的很多好东西

有几个aproach你可以在你的服务器上使用VSTO实例化一个excel对象,然后把这个文档写在内存中,然后写回应这个本地文件,但是如果你为每个请求创build一个excel对象,可以尝试做一个包装Excel对象实例的单例对象

你可以创build一个类似于网格的报表(rdlc文件)。 然后,您可以执行一个操作,在其中实例化LocalReport ,将所需的数据传递给它并调用其Render方法。 然后您返回由Render方法返回的字节数组。