所以这是另一个导出到Excel的问题。
我有一个页面,其中包含一个按样式表格式化的表格。 当我通过将ContentType设置为application / excel和Content-Disposition设置为附件来导出页面时,我可以将表导出到Excel(而不是CSV)。但是,它会丢失所有格式。我认为这是因为Excel不加载CSS而我认为这是合理的。
因此,在我必须在网络上显示表格并导出到Excel的情况下,两者都具有相似(即使不精确)的格式,如果不使用像NPOI这样的东西,最好的方法是什么?
我正在尝试最小化工作并尽可能保留单个模板。我是否有必要创建两个单独的模板:一个带有样式表,另一个带有Excel表格中的嵌入式样式?
在里面使用带有条件格式的单个模板会非常混乱。
有什么想法吗?
答案 0 :(得分:2)
如果您还没有解决问题,我建议您使用适用于Microsoft Office的Open XML SDK 2.0(请参阅http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&displaylang=en)。通过这种方式,您可以创建XLSX文件,而无需在服务器上安装Excel。 XLSX文件是压缩的(如ZIP文件)xml文件集合。 Open XML SDK 2.0可帮助您创建和更改XLSX文件作为纯xml文件。如果你第一次看Open XML SDK,很多东西看起来很奇怪,但它只是在开头。有一个名为“Open XML SDK 2.0 Productivity Tool”(Open XML SDK 2.0的一部分),它可以为您生成许多有用的代码。此外,您可以创建一个很好的Excel文档,您可以将其用作您将创建的文档的原型(模板)。因此,您可以在不编写大量代码的情况下解决复杂格式化的问题。
查看http://msdn.microsoft.com/en-us/library/cc850837(v=office.14).aspx以获取一些示例和http://openxmldeveloper.org/default.aspx。另请参阅Creating Excel document with OpenXml sdk 2.0作为开始示例。你可以在http://www.codeplex.com上找到很多关于Open XML SDK
的好东西答案 1 :(得分:0)
有几种方法 您可以使用VSTO在服务器上实例化excel对象,然后将文档写入内存并写入以响应本机文件,但如果您为每个请求创建一个excel对象,这种方法可能会非常昂贵,因此您可以尝试执行此操作包装excel对象实例的单例对象
答案 2 :(得分:0)
您可以使用与网格类似的外观创建报告(rdlc文件)。然后,您可以执行一个操作,在其中实例化LocalReport,传递您想要的数据并调用其Render方法。然后返回Render方法返回的字节数组。