我有一个小型 .NET 应用程序,我通过任务计划程序在 Windows 2008 Server 下运行。此应用程序需要打开一个 excel 文件,然后将其保存为 csv。当我尝试打开工作簿时任务失败。如果我在没有任务调度程序运行的情况下手动运行它,则该应用程序可以正常工作。
我将其设置为“以最高权限运行”并选中“运行天气用户是否登录”。
我的猜测是,这个过程需要与桌面交互,类似于检查服务上的“与桌面交互”标志。但是我一直无法为计划任务找到类似的东西。
这是失败的代码:(在 workbook.open 调用中失败)
public static void ConvertExcelToCsv(string source, string destination)
{
if (File.Exists(destination)) File.Delete(destination);
Application xl = new Application();
try
{
Workbook workbook = xl.Workbooks.Open(source, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Worksheet ws = (Worksheet)workbook.Sheets[1];
ws.SaveAs(destination, XlFileFormat.xlCSV, Type.Missing, Type.Missing, false, false, Type.Missing, Type.Missing, Type.Missing,true);
Marshal.ReleaseComObject(ws);
}
finally
{
xl.DisplayAlerts = false;
xl.Quit();
Marshal.ReleaseComObject(xl);
}
}