【问题标题】:reading excel data by column using VB.NET使用VB.NET按列读取excel数据
【发布时间】:2011-10-05 19:14:26
【问题描述】:

我之前从未在 VB.NET 中读取过 excel 文件,如果出现任何问题,请见谅。

我正在从有 8 列的供应商 ftp 服务下载一个 .csv 文件 (款式#-mfr.item#-描述-金属类型-可用性-中心重量-总重量-零售价值)

我正在尝试检索以下行中的所有数据样式 # 和零售价值 大约有 4,649 行

我不知道该怎么做。

我使用 microsoft.office.interop.excel 加载 excel 文件:

Dim eApp As excel.Application
Dim eBook As excel.Workbook
Dim eSheet As excel.Worksheet
Dim eCell As excel.Range

eApp = New excel.Application
eBook = eApp.Workbooks.Open(localFile)
eSheet = eBook.Worksheets(1)
eCell = eSheet.UsedRange

谁能帮助我下一步需要做什么?我已经浏览了 google 几个小时,但没有得到任何工作,只是返回一个对象名称。

谢谢

【问题讨论】:

    标签: vb.net excel


    【解决方案1】:

    你就快到了!这里有两种方法。

    方式#1:在eCell = eSheet.UsedRange之后添加以下内容:

    Dim eCellArray as System.Array = eCell.Value
    

    然后通过eCellArray(r,c)获取值,其中r是行,c是列(每个从1开始)。

    方式#2:使用此表达式获取单元格的值:

    CType(eCell(r,c),Excel.Range).Value ' For Option Strict, or just to get IntelliSense to work.
    

    或者干脆

    eCell(r,c).Value
    

    HTH

    【讨论】:

      【解决方案2】:

      例如,您可以像这样访问范围内的单元格:

      Dim iRow as Integer = 1
      Dim iCol as Integer
      Dim rng as Excel.Range = getYourRangeFromSomewhere()
      Dim rngCell as Excel.Range
      
      For iCol = 1 To 10 
         rngCell = rng.Cells(iRow,iCol)
         Debug.Print rngCell.Value
      Next
      

      【讨论】:

      • 不,excel范围基本上是一个二维数组。不像数据库中的表那样结构化。
      猜你喜欢
      • 1970-01-01
      • 2014-05-08
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 2016-07-29
      相关资源
      最近更新 更多