当前位置: 代码迷 >> VB Dotnet >> 怎么解决一次性读入Excel数据的后期绑定有关问题
  详细解决方案

怎么解决一次性读入Excel数据的后期绑定有关问题

热度:131   发布时间:2016-04-25 02:20:42.0
如何解决一次性读入Excel数据的后期绑定问题?

            Dim app1 As Excel.Application = New Excel.Application
            Dim bk1 As Excel.Workbook
            bk1 = app1.Workbooks.Open(fromFile)
            Dim sheetA = CType(bk1.Worksheets(1), Excel.Worksheet)
            Dim rowCount = sheetA.UsedRange.Rows.Count
            Dim colCount = sheetA.UsedRange.Columns.Count
            Dim arrStr As Object
            arrStr = sheetA.UsedRange.Value
            Dim nr As DataRow
            Dim newCase As New clsOrder
            For r = 2 To rowCount
                With newCase
                    .OrderNo = arrStr(r, SheetCols.订单).ToString '后期绑定
                    .Cust = arrStr(r, SheetCols.客户名称).ToString '后期绑定
                    .Product = arrStr(r, SheetCols.规格说明).ToString '后期绑定
                    .RequestDate = CDate(arrStr(r, SheetCols.交货日期)) '后期绑定
                    .ProductNum = CInt(arrStr(r, SheetCols.生产数量)) '后期绑定
                    .PaperNum = CInt(arrStr(r, SheetCols.张数)) '后期绑定
                    .AreaNum = CDbl(arrStr(r, SheetCols.未入库平方)) '后期绑定
                    .RecordDate = Today
                    .AutoScedu = True
                    CheckFlow(arrStr(r, SheetCols.瓦楞机).ToString, CInt(arrStr(r, SheetCols.钉数))) '分析字段 '后期绑定
                    .WorkFlows = dvWorkFlow '流程视图
                    .AddNewCase() 
                End With
            Next
            newCase = Nothing


因为逐条读取Excel文件实在太慢,于是我想一次性读入所有的数据。
以上为部份代码 如上述 我先定义了一个arrStr的object对像,然后将Excel里的Range的值赋给这个object,他就变成了一个数组
然后遍历这个数组 给我需要的变量赋值
for循环中 所有的对arrStr的使用都属于后期绑定,如果在Option strict模式下这是会报错的,不知道能不能解决?
------解决方案--------------------
UsedRange.Value 的类型应该也是一个Range吧。试一试看看。
Dim arrStr As Range 读取看看。
  相关解决方案