3

在 C# ASP.NET 3.5 Web 应用程序中,我需要将多个数据表(或数据集)导出到具有多个工作表的 Excel 2007 文件,然后为用户提供“打开/保存”对话框,而不将 Excel 文件保存在网络服务器。

我以前使用过 Excel 互操作。我一直在读到它效率不高,也不是实现这一目标的最佳方法,还有更多方法可以做到这一点,其中两种方法是:1)将数据表中的数据转换为 Excel 理解的 XML 字符串 2)使用 OPEN XML SDK 2.0。

看起来 OPEN XML SDK 2.0 更好,请告诉我。还有其他方法吗?我不想使用任何第三方工具。

如果我使用 OPEN XML SDK,它会创建一个 excel 文件,对吗?我不想将它保存在(Windows 2003)服务器硬盘上(我不想使用 Server.MapPath,这些 Excel 文件是动态创建的,服务器上不需要它们,一旦客户端获取它们) . 我直接想提示用户打开/保存它。当使用“XML 字符串”方法时,我知道该怎么做。

请帮忙。谢谢你。

4

3 回答 3

1

是否绝对需要 Excel 2007 支持?

我们使用NPOI取得了巨大成功,它支持我们想要的所有功能(多个工作表、格式、公式)。它也很稳定。

它生成的文件虽然是 Excel 2003 格式,但它们是二进制的,而不是 OOXML。

这个问题之前已经被问过,请参阅此处以获得更好的讨论。

于 2010-04-02T23:52:45.217 回答
1

您可以轻松地将 xml 响应作为 XML Excel 文件流式传输给用户。

任何页面:

<a href="report.aspx" target="_blank"> Open excel Report</a>

报告.aspx:

 Response.Clear();
 Response.ContentType = "application/vnd.ms-excel";
 Response.AddHeader("Content-Disposition"
                     , "attachment;filename=" & _fileName & ".xml");
 Response.Write("<?xml version=""1.0""?>");
 Response.Write(excelXML);
于 2010-04-03T00:01:26.797 回答
0

我也遇到过将数据集导出到 excel 中的类似要求。我使用了这个开源库。它基于 Open XML 标准,不使用 Office Interop。它符合我的要求。但是,我的要求是基本的。因此,请检查它是否满足您的要求。

于 2013-05-07T05:12:28.730 回答