0

我使用在 OfficeWriter 中找到的示例编码创建了一个简单而基本的 Hello World 模板。但是,我想将输出保存在计算机内的文件夹中,而不是在线存储(网络)

该网站已经说明了如何保存到文件夹,但在我的情况下它不起作用。任何人都可以在这方面提供帮助吗?顺便说一句,我使用控制台应用程序进行编码。

该错误提到我必须添加 System.Web 引用,我认为这是没有必要的,因为我没有做网络或其他事情。

    using SoftArtisans.OfficeWriter.ExcelWriter;

    namespace ConsoleApplication1
    class Program
    {
        static void Main(string[] args)
        {
            ExcelTemplate XLT = new ExcelTemplate();
            XLT.Open(@"C:\Users\administrator\Desktop\Hello World.xlsx);
            DataBindProperties dataProps = XLT.CreateDataBindingProperties();
            string value = "Hello World";
            XLT.BindCellData(value, "DataValue", dataProps);
            XLT.Process();
            XLT.Save("Output.xlsx"); //this coding is giving me problem.
        }
    }
4

5 回答 5

3

注意:我为 OfficeWriter 的制造商 SoftArtisans 工作。

尽管我们的大多数客户在 .NET Web 应用程序中使用 OfficeWriter,但 OfficeWriter 可以在任何类型的 .NET 应用程序中使用。

所有 OfficeWriter 对象(ExcelTemplateExcelApplicationWordTemplateWordApplication)都有四个输出选项:

  1. 直接保存到磁盘
  2. 保存到 System.IO 流
  3. 将生成的文件作为附件流式传输到客户端
  4. 将生成的文件流式传输到客户端以在浏览器中查看。这仅适用于 Internet Explorer 并且启用了在 IE 中查看 Office 文件。

由于使用 HttpResponse 对象的 Save() 重载,Save 方法依赖于 System.Web。我知道客户在使用 .NET 4 客户端配置文件时遇到了依赖问题,因为没有自动包含对 System.Web 的引用。我相信对于控制台或表单应用程序等项目也是如此。

要将文件保存到磁盘上的特定文件夹,您需要提供磁盘上该位置的完整文件路径。例如“C:\Reports\SampleReport.xlsx”。在将该值传递给 OfficeWriter 之前,您可以使用 .NET 代码来帮助解析完整的文件路径。

以下是我发现的几篇文章,讨论了如何从 .NET 控制台应用程序获取完整文件路径:

于 2013-06-25T11:56:22.920 回答
0

根据ExcelTemplate.Save() 文档,文件正在保存到服务器,即使您认为它不是。由于是试图保存到web服务器,System.Web所以需要解析服务器上的物理路径。

于 2013-06-25T01:55:27.550 回答
0

那你就用错了工具。直接来自 Excel Writer 7 的文档...

SoftArtisans ExcelWriter 是一种高性能纯 .NET 解决方案,可在 Web 服务器上生成本机 Microsoft Excel 电子表格。几行简单的代码生成可编辑的演示质量电子表格,可以保存在服务器上或由成千上万的并发用户立即查看。

http://wiki.softartisans.com/pages/viewpage.action?pageId=3114609

考虑使用 Visual Studio Tools for Office 或其他一些库来满足您本地的 Excel 需求。

于 2013-06-25T02:25:52.680 回答
0

您应该尝试添加 System.Web 引用以查看是否可以解决您的问题。System.Web 程序集已与完整的 .NET 框架一起安装,因此无论您是否引用它都不会改变任何内容。也许它会检测到您不在 Web 应用程序中并无论如何保存它,但它需要引用才能这样做。

或者,使用开源 EPPlus 项目创建 Excel 电子表格,并且不需要 System.Web - http://epplus.codeplex.com/

于 2013-06-25T02:40:01.433 回答
0

好的,我找到了该问题的答案,我只需将 Web 引用添加到项目中,它就像魔术一样工作。再次感谢大家提供的帮助。

于 2013-06-26T01:57:34.247 回答