将ASP.NET与Excel文件一起使用
我想从ASP.NET中的网页创建excel文件,我使用的是Microsoft.Office.Interop.excel库,但无法删除服务器端创建的文件,因为我遇到了时间问题。我想知道是否有一种方法可以创建一个包含数据库数据的Excel文件,然后客户端可以下载该文件而不会使服务器饱和 实际上,在服务器中创建文件后,我在VB中使用了此代码,但它的工作方式与我想要的不同:将ASP.NET与Excel文件一起使用,asp.net,vb.net,export-to-excel,Asp.net,Vb.net,Export To Excel,我想从ASP.NET中的网页创建excel文件,我使用的是Microsoft.Office.Interop.excel库,但无法删除服务器端创建的文件,因为我遇到了时间问题。我想知道是否有一种方法可以创建一个包含数据库数据的Excel文件,然后客户端可以下载该文件而不会使服务器饱和 实际上,在服务器中创建文件后,我在VB中使用了此代码,但它的工作方式与我想要的不同: Dim p As Process = New Process() p.StartInfo = New ProcessSta
Dim p As Process = New Process()
p.StartInfo = New ProcessStartInfo()
p.StartInfo.UseShellExecute = True
p.StartInfo.FileName = "taskkill.exe"
p.StartInfo.Arguments = "/F /IM EXCEL.exe"
p.Start()
p.WaitForExit()
Thread.Sleep(24)
Response.ContentType = "application/vnd.ms-excel"
Response.AppendHeader("Content-Disposition", "attachment; filename=Reporte.xlsx")
Response.TransmitFile(Server.MapPath("~/Resources/" & HiddenField1.Value.ToString() & ".xlsx"))
'Thread.Sleep(10000)
'Dim fso, f2
'fso = CreateObject("Scripting.FileSystemObject")
'f2 = fso.GetFile(Server.MapPath("~/Resources/" & HiddenField1.Value.ToString() & ".xlsx"))
'f2.Delete()
'Thread.Sleep(24)
Response.End()
谢谢< p>您可以考虑使用Excel以外的其他东西来创建要发送的文件。 例如,Carlos Aguilar Mares的免费Excel XML库: 此外,某些报告工具(如SQL Server reporting Services)还可以选择导出本机Excel文件。这是生成Excel文件的一种方法,包括格式设置 最后,Excel可以读取其他类型的文件,例如CSV和HTML文件。这些更容易生成,并且不需要Excel本身来生成
一个很好的选项演练:Microsoft不正式支持在服务器上自动运行excel,我建议您找到一个替代方案。Microsoft在这里有很多关于此主题的好信息: 所有当前版本的Microsoft Office都经过了设计、测试和测试 配置为在客户端工作站上作为最终用户产品运行。他们 假设是交互式桌面和用户配置文件。他们不提供 满足以下条件所需的可重入性或安全性级别: 需要设计为无人值守运行的服务器端组件 微软目前不推荐,也不支持, 从无人值守的环境中实现Microsoft Office应用程序的自动化, 非交互式客户端应用程序或组件(包括ASP, NET、DCOM和NT服务),因为Office可能表现出不稳定 在此环境中运行Office时的行为和/或死锁。 如果要构建在服务器端上下文中运行的解决方案,则 应尽量使用无人值守的安全组件 执行。或者,您应该尝试找到至少允许 用于运行客户端的部分代码。如果您使用Office应用程序 从服务器端解决方案来看,应用程序将缺少许多 成功运行所需的功能。此外,您将 以整体解决方案的稳定性冒险 他们甚至建议如何避免使用它们: 大多数服务器端自动化任务都涉及文档创建或 编辑。Office2007支持新的开放式XML文件格式,使 开发人员在计算机上创建、编辑、读取和转换文件内容 服务器端。这些文件格式使用System.IO.Package.IO命名空间 在Microsoft.NET 3.x Framework中,不使用 Office客户端应用程序本身。这是推荐和推荐的方法 处理来自服务的Office文件更改的支持方法 他们还提供了有关使用API的教程: 我们用来生成excel文档
它让你对输出有很大的控制,而且速度非常快。正如John所说,MS完全不支持通过网站在服务器上自动运行Excel,他们建议您使用其他方法。在服务器上运行作业(例如,每午夜一次)删除一天或更长时间的文件可能更容易。