从Azure-vb.net中的excel文件中提取数据

从Azure-vb.net中的excel文件中提取数据,vb.net,openxml,Vb.net,Openxml,我正在更新正在工作的Web服务以在azure中工作。我以前使用ACE OleDB从excel文件中提取数据,但Azure不支持。因此,我切换到OpenXML,无法找到所需的函数。具体来说,我似乎找不到我的列标题。我发现的一个“操作方法”让我创建一个datatable,然后用第0行中的值填充datatable列: 'Fetch all the rows present in the Worksheet. Dim rows As IEnumerable(Of Row) = worksheet.Get

我正在更新正在工作的Web服务以在azure中工作。我以前使用ACE OleDB从excel文件中提取数据,但Azure不支持。因此,我切换到OpenXML,无法找到所需的函数。具体来说,我似乎找不到我的列标题。我发现的一个“操作方法”让我创建一个datatable,然后用第0行中的值填充datatable列:

'Fetch all the rows present in the Worksheet.
Dim rows As IEnumerable(Of Row) = worksheet.GetFirstChild(Of SheetData)().Descendants(Of Row)()
        
'Create a new DataTable.
Dim dt As New DataTable()
        
for each cell as Cell in rows(0).Descendants(Of Cell)()
    dt.Columns.Add(cell.CellValue.Text)
next
这对我来说是有意义的,除了openXML似乎认识到我的数据是用标题格式化的,所以行(0)实际上给了我单元格A2、B2、C2等,而不是A1、B1、C1等

我找到一个microsoft文档,上面说我可以获得如下列标题或列名:

Dim cellName As String = "B2"
Dim s1 As String = GetColumnHeading(docName, worksheetName, cellName)
'or
Dim columnName As String = GetColumnName(cellName)
但是我不能确定我将得到多少列,因此我需要一种方法在不知道单元名称的情况下迭代未知数量的单元,并且函数GetColumnHeading和GetColumnName都给了我未声明的错误,因此我的Azure实例使用的OpenXML的任何实现都没有这些函数

理想情况下,我可以像使用数据表一样使用它,但如果您看到我可以修复的任何东西,请帮助。我的首选语言是vb.net,但我可以很好地从c语言进行翻译。我不熟悉OpenXML,但一直使用SQL和数据集/数据表