任务调度程序问题和阅读Excel文件

4c8rllxm  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(99)

我有一个应用程序,它可以读取Excel文件并将其转换为文本文件它首先将文件从源目录复制到同一台计算机上的临时文件夹中(要么是我的笔记本电脑,要么是它所在的服务器)。在本地,应用程序像它应该的那样工作。我将应用程序迁移到Windows 2012R2服务器,并使用我的帐户进行测试,它也像它应该的那样工作。当我计划它时,应用程序无法访问文件c:\temp\tmp.xls。

An exception occurred in class ExcelWorkbook, method SaveAsText_Tab. Exception info below:
    Microsoft Excel cannot access the file C:\TEMP\LUXINTRANET_JET_CUSTOMERS.xlsx. There are multiple reasons:

• The name of the file or path does not exist.
• The file is in use by another program.
• The workbook you are trying to save has the same name as a workbook that is opened already.

       at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
   at ExcelHandler.Concrete.ExcelWorkbook.SaveAsText_Tab(String filename)

我已经找到了异常点,它在这一行中:

clsWorkbook = clsExcel.Workbooks.Open(filename);

奇怪的是,它只发生在我通过任务调度程序而不是通过我自己的帐户运行应用程序的时候。
日程表是用我的证书设置的,高级特权。
我花了几天的时间来思考这个问题,但它似乎不符合逻辑,因为我使用同一个用户在本地、服务器上和通过任务调度程序运行它。
有什么建议吗?

arknldoa

arknldoa1#

根据要求从评论升级:
Excel有时会尝试使用不存在的系统用户配置文件文件夹。我们已通过创建文件夹C:\Windows\System32\config\systemprofile\Desktop(适用于32位Windows)或C:\Windows\SysWOW64\config\systemprofile\Desktop(适用于64位Windows)解决了此问题。

相关问题