我有下面的示例代码,它将创建一个 excel 文件。 我不想将其保存在服务器中。
if (app == null)
return;
app.Visible = true;
object loc;
workbook = app.Workbooks.Add(1);
workbook.SaveAs("D:\\Sample.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing);
不保存如何即时下载?
最佳答案
您违反了服务器上 Office 自动化的最基本规则 - 不要这样做! Microsoft Office 不适用于非交互式登录 session ,例如 Web 服务器使用的 session 。你可能会发现,鉴于你上面的代码并没有做太多事情,这现在可以工作了,但微软几乎可以保证随着你的代码更改、你的服务器配置和 Office 产品更新,你会随着时间的推移遇到各种问题。
相反,Office 文档应该由许多不直接绑定(bind)到 Office 套件本身的工具之一生成(Office 文档自 Office 2007 以来一直使用称为 OpenXML 的开放格式)。这些工具直接生成最终存储在 xslx 文件中的 XML 文件和打包元数据。
我通常喜欢使用 Microsoft OpenXML SDK,它是处理这些事情的一把瑞士军刀。它很容易使用不当,但您可以使用它创建几乎任何 Office 文档。 http://msdn.microsoft.com/en-us/library/office/bb448854.aspx
如果您要使用 OpenXML SDK,Open XML SDK 生产力工具是必备工具。 SDK 和快捷 session 工具均可下载: http://www.microsoft.com/en-us/download/details.aspx?id=30425 .
关于c# - 如何动态创建excel并在c#中下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001105/