问题:
我有一个 SSIS 包,它遍历 100 多个 Excel 文件并读取数据,然后将内容复制到 SQL Server 表中。在这些 Excel 文件中,这一列具有超链接。列文本本身类似于 DSH-LN-4,但在 Excel 中单击它会打开一个包含一些图像的文件夹。如何复制此列中的基础链接而不是单元格中的实际文本?
到目前为止我尝试了什么:
我还没有真正尝试过任何事情,因为我发现在 SSIS 中完全没有关于如何做到这一点的资源。无法手动向 Excel 文件添加一列,因为有 100 个文件。我发现的唯一资源是在这个 SO Question中,但这并不表示在不手动操作 Excel 文件的情况下执行此操作的过程。
我想要什么:
在我的 ForEach 循环容器中,我有一个数据流任务,它获取 Excel 内容并将其推送到 SQL 表中。包含超链接的列被调用PhotoReference
(因为这些超链接打开了包含照片的文件夹)。我希望此PhotoReference
列复制单元格的底层超链接并将其添加到 SQL 列。
例如,我希望该PhotoReference
列包含以下内容:
www.companyname.box.com/asjdfbgkjb134kjbsdafo2bm21n4bk
如果我能做到这一点,我的 Power BI 报告运行这些基础数据可能包含一个可点击的文本,可以直接打开图像。
任何帮助,将不胜感激。
更新:
我可以尝试两种不同的方法从我的专栏中提取超链接,但每种方法都有自己的问题:
方法 1:我在ForEach
容器中添加了一个脚本任务组件,并在循环每个 Excel 文件时,使用Microsoft.Office.Interop.Excel.Hyperlinks
程序集从我的 Excel 列中获取超链接。但是,我不知道之后该怎么办。我认为唯一要做的就是用我提取的超链接覆盖 Excel 列的内容,但我真的不想以任何方式更改我的 Excel 文件。
方法 2:我在 Excel 源和 SQL 目标之间的数据流任务中添加了一个脚本组件对象。在这种方法中,我几乎无法做到这一点,因为Input0_ProcessInputRow
自动生成的方法具有Row
type的参数Input0Buffer
。我无法将任何Microsoft.Office.Interop.Excel
属性应用于我的Input0Buffer
对象。所以我被困住了。