作为SSIS脚本任务的一部分,在C#中打开,保存然后关闭xls文件

时间:2019-07-12 09:03:52

标签: c# excel ssis etl script-task

我有一个SSIS包,可以从自动生成的xls文件中提取数据。 Microsoft Jet Engine 4驱动程序仅在打开并保存了xls文档后才能识别它们,因此我需要添加C#脚本任务来自动化此步骤。

我对C#一无所知,但是尝试了其他人摘录的各种代码摘录,但不幸的是,我无法使其中的任何代码都能正常工作。似乎没有完整的代码摘录,而且由于我的C#知识是0,所以我不断遇到很多错误。

using Excel = Microsoft.Office.Interop.Excel;

var ExcelApp = new Excel.Application();
Excel.Workbook workbook = ExcelApp.Workbooks.Open(path);
ExcelApp.Visible = true;
workbook.Save();
workbook.Close();
ExcelApp.Quit();

我使用了上面的代码,但我认为它不是C#脚本任务的完整代码集。

编辑

已经提到,如果xls文件不是以xls结尾的其他格式,则Jet驱动程序应该可以工作。不幸的是,这是行不通的,目前的解决方案是在c#中自动执行打开,保存和关闭操作,因为我知道手动完成后就可以工作。

如果有人可以提供帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用https://www.nuget.org/packages/EPPlus/做与excel有关的事情

using OfficeOpenXml;

using (ExcelPackage excelPackage = new ExcelPackage(filePath))
{
    ExcelWorkbook excelWorkBook = excelPackage.Workbook;
    ExcelWorksheet excelWorksheet = excelWorkBook.Worksheets.First();
    excelWorksheet.Select(excelWorksheet.Cells[1, 1].Address);

     //Save your file
    excelPackage.Save();
}