我在ssis pacakge中有一个脚本任务。脚本任务的代码:
string xlsPath = Dts.Variables["User::FilePath"].Value.ToString();
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = false;
Microsoft.Office.Interop.Excel.Workbook workbook = app.Workbooks.Open(xlsPath);
Microsoft.Office.Interop.Excel.Worksheet worksheet = workbook.Worksheets[1];
int ColumnIndex = 4;
worksheet.Columns[ColumnIndex].TextToColumns();
worksheet.Columns[ColumnIndex].NumberFormat = "0";
workbook.Save();
workbook.Close();
在VS2015中运行程序包时我没有问题,但是通过sql agent运行它时会引发以下错误:
HRESULT异常:0x800A03EC。
我正在使用xls文件。
答案 0 :(得分:1)
您可以在脚本中添加try ... catch ...来捕获确切的错误消息。
这可能是由于权限问题引起的,代理作业中使用的帐户(默认情况下为SQL Server代理服务帐户)无权访问Excel文件。
解决方案是使用具有足够权限的代理帐户运行程序包。
How to create a Proxy Account and use it to run SSIS package