导出Excel内部服务

时间:2014-05-06 00:00:54

标签: excel delphi service export-to-excel

晚安!

我在Delphi中构建了一个Service App,它应该生成一个excel并每天通过电子邮件发送几次。

基本上,我的查询组件配置得很好(SQLQuery,Provider,Client和DataSource),当我在IDE中调试服务时,所有进程都能正常工作。

问题是,当我尝试安装我的服务并在没有Delphi的情况下运行它时,程序运行到这一行:

Excel.Application.Workbooks[1].SaveAs(pFileName + '.xls');

编辑:在上面的情况中,pFileName变量提供了' C:\',这意味着我给出了完整路径。

我有异常,这是消息:

工作簿类的SaveAs方法失败

这让我觉得问题不在代码中,而是在我的计算机中(某种配置)。

我已经与我的用户配置了服务,所以我拥有所有权限,我也可以在服务中生成txt文件,但不能生成xls(excel)文件。

非常感谢!

2 个答案:

答案 0 :(得分:2)

我在输入这个问题时找到了答案。即使我使用Windows 7,这对我有用:

  

使用Windows 2008 server x64 时,请创建以下目录:   启用Excel导入和导出:

     

<强> \的Windows \ Syswow64资料\配置\ systemprofile \桌面

     

使用Windows 2008服务器x86时,请创建以下目录以启用   Excel导入和导出:

     

<强> \的Windows \ system32 \设置\ systemprofile \桌面

来源:Export To Excel error - Oracle Blog

注意:我甚至删除了该文件夹并再次尝试确保这是解决方案。谢谢!

答案 1 :(得分:1)

您没有指定完整路径,因此会尝试将文件保存到服务工作目录中。您的服务的工作目录似乎是一个不存在的目录。

这里适当的解决方案是提供文件的完整路径。由于您的目标是暂时保存文件以便将其附加到电子邮件,因此保存到临时目录是有意义的。通过调用GetTempPath找到临时目录。