sql - 使用 SSIS 从 Excel 导入数据,无需知道工作表名称

标签 sql excel ssis

我有一个由另一台服务器更新的电子表格(不受我的控制),并且我需要自动将该数据导入 SQL 2005。数据始终位于电子表格的第一页。但是,该工作表的名称会根据行数而变化。

有没有办法运行 SSIS 作业,在事先不知道工作表名称的情况下从 Excel 中提取数据?它似乎依赖工作表名称作为数据源,但我希望告诉它“工作表编号 1”或类似的内容。

最佳答案

我会将工作表名称编写为 SSIS 用户变量。如果您不反对将脚本任务插入到 SSIS 包中,请尝试以下操作:(基于 link text )

Excel.Application xlApp = new Excel.ApplicationClass();
Excel.Workbook xlWorkBook = xlApp.Workbooks.Open("<Name of your excel app>.xls", 0, xlWorkBook true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
// Look up worksheet by index
Excel.Worksheet xlWorkSheet =(Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

user::worksheetname = xlWorkSheet.Name;

/* Do clean up.  Working with COM object */

关于sql - 使用 SSIS 从 Excel 导入数据,无需知道工作表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4444169/

相关文章:

java - QueryDsl boolean 生成器 : How to create a predicate that compares another field?

string - 设置单元格格式以获取逗号分隔值

excel - 如何在Excel公式中使用字符串字母和当前行号表示单元格ID?

sql-server - 平面文件目标中的动态列

ssis - 如何在Integration Services中手动使软件包失败?

sql - 需要有关 sql server 表的建议

sql - 如何编写查询以从链接到其他表的表中获取信息,然后链接到其他表并链接到其他表

excel - 不要在单元格中显示公式

sql-server - SSIS - 再次出现内存不足错误

MySQL 同表中的子查询