2013-05-08 55 views
0

我有一种情况,我需要使用SSIS读取带有过滤行的excel文件。无法使用ssis读取excel文件脚本来源

我已经开始测试过程,但都当我看着我的表我得到的是“系统.__ ComObject”

我敢肯定,我做了一些愚蠢的。

感谢

Public Overrides Sub CreateNewOutputRows() 

Dim xlApp = New Excel.Application 

Dim wb As Microsoft.Office.Interop.Excel.Workbook 
Dim rw As Excel.Range 
xlApp.DisplayAlerts = False 

wb = xlApp.Workbooks.Open("C:\PosData\test.xlsx") 


Dim visible As Excel.Range = wb.Sheets("Data").UsedRange.SpecialCells(Excel.XlCellType.xlCellTypeVisible, Type.Missing) 
For Each rw In visible.Rows 
    Output0Buffer.AddRow() 
    Output0Buffer.Column = rw.Cells(1, 1).ToString 
Next 

Output0Buffer.SetEndOfRowset() 
End Sub 
+1

调试SSIS脚本任务时,我发现有帮助的做法是取出核心逻辑并将其复制到.NET控制台应用程序中,以便可以逐步完成并检查值。 SSIS 2012允许在数据流脚本中设置断点,但在我看来,它仍不如完整的项目那么高效。这就是说,不应该'ToString'是'ToString()'? – billinkc 2013-05-08 15:42:58

回答

1

,使用互操作时,有时会发生。 在这种情况下,Excel中的所有对象确实是COM对象。

使用Cells(1,1).ValueCells(1,1).Value2Cells(1,1).Text。最适合你。 (可能您需要先将单元格转换或转换为范围)

+0

就是这样。我对在单元结束时出现的属性缺乏感到沮丧。 – 2013-05-08 15:50:19