我正在尝试读取 Excel 的特定单元格值并将其存储在表格中。但收到 Invalid 强制转换异常。下面是我的 VB 脚本代码:
Dim oExcel As Object = CreateObject("Excel.Application")
Dim FileName As String
FileName = Variables.FileName
Dim oBook As Object = oExcel.Workbooks.Open(FileName)
Dim oSheet As Object = oBook.Worksheets(1)
Output0Buffer.AddRow()
Output0Buffer.OrgName = oSheet.Range("A4").Value
Output0Buffer.UnitName = oSheet.Range("B6").Value
Output0Buffer.MonthName = oSheet.Range("A8:A19").Value
Output0Buffer.Goals = oSheet.Range("B8:B19").Value
Output0Buffer.Actual = oSheet.Range("C8:C19").Value
错误消息是:
System.InvalidCastException: Conversion from type 'Object(,)' to type 'String' is not valid
有人可以帮我找出问题并提供解决方案吗?
最佳答案
主要问题是您尝试将 Excel 范围(多个单元格)分配到单个列中:
oSheet.Range("A4")
将返回A4
整列oSheet.Range("A8:A19")
将返回此范围内的所有单元格A8:A19
而不是使用Range
属性:
Output0Buffer.OrgName = oSheet.Range("A4").Value
您应该使用Cells
属性来读取特定单元格:
Output0Buffer.OrgName = oSheet.Cells(4,1).Value
要了解有关 Cells 属性的更多信息,您可以引用以下文档:
关于excel - 在 SSIS 中从 Excel 读取数据时出现无效转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57343484/