我认为NPOI是一个很好的解决方案,你不希望在像ASP.NET这样基于服务器的环境中与Office互操作,它只是不是为它而设计的,它会失败.事实上MS不支持这个,我会用链接更新.
至于NPOI,我们的团队已将它用于非常相似的事情,我知道他们编写了一个例程来转储数据表,因此我认为这意味着NPOI本身没有这种能力.
基本上你需要做的是枚举DataTable的每一行中的值并写出值,这应该是一个相当简单的编写例程.
更新:我承诺的链接.
http://support.microsoft.com/kb/257757
上述链接中的关键短语
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定的行为和/或Office在此环境中运行时出现死锁或死锁.