晚安!
我在Delphi中构建了一个Service App,它应该生成一个excel并每天通过电子邮件发送几次。
基本上,我的查询组件配置得很好(SQLQuery,Provider,Client和DataSource),当我在IDE中调试服务时,所有进程都能正常工作。
问题是,当我尝试安装我的服务并在没有Delphi的情况下运行它时,程序运行到这一行:
Excel.Application.Workbooks[1].SaveAs(pFileName + '.xls');
编辑:在上面的情况中,pFileName变量提供了' C:\',这意味着我给出了完整路径。
我有异常,这是消息:
工作簿类的SaveAs方法失败
这让我觉得问题不在代码中,而是在我的计算机中(某种配置)。
我已经与我的用户配置了服务,所以我拥有所有权限,我也可以在服务中生成txt文件,但不能生成xls(excel)文件。
非常感谢!
答案 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
找到临时目录。