我有一个 asp.net 网站,它会生成一些包含 7-8 张数据的 excel 文件。迄今为止最好的解决方案似乎是NPOI,它可以创建 excel 文件而无需在服务器上安装 excel,并且具有类似于 excel 互操作的漂亮 API。
但是我找不到在 excel 中转储整个数据表的方法,类似于CopyFromRecordset
关于如何做到这一点的任何提示,或比 NPOI 更好的解决方案?
我认为 NPOI 是一个很好的解决方案,你不想在像 ASP.NET 这样的基于服务器的环境上与 Office 进行互操作,它只是不是为它设计的,它会失败。事实上MS不支持这个,我会更新一个链接。
至于 NPOI,我们的团队已经将它用于非常相似的事情,我知道他们编写了一个例程来转储数据表,所以我认为这意味着 NPOI 本身没有这种能力。
基本上,您需要做的是枚举 DataTable 每一行中的值并将值写出,这应该是一个相当简单的编写例程。
更新:我承诺的链接。
http://support.microsoft.com/kb/257757
来自上述链接的关键短语
Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。