我知道在VB .NET中有几种不同的方法可以从excel工作簿导入数据。第一种方法是加载excel dll作为引用,打开文件,然后从那里调出单元格/范围。我看到的第二种方法是使用公式化为SQL语句的查询,无需打开工作簿即可访问数据。
我对第二种方法感兴趣,我可以做得非常好,这里概述的很好:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim filepath As String = "C:\Users\wzcj9x\Desktop\database layout.xlsx"
Dim m_sConn1 As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & filepath & ";" & _
"Extended Properties=""Excel 12.0;HDR=YES"";"
'========================================================
'Use a DataSet to read data from the InventoryData table.
'========================================================
Dim conn1 As New OleDbConnection(m_sConn1)
Dim da As New OleDbDataAdapter("Select * From [Sheet1$]", conn1)
Dim dt As DataTable = New DataTable
da.Fill(dt)
MsgBox(dt(0)(0).ToString)
' DataGridView1.DataSource = ds
conn1.Close()
End Sub
现在我的问题是,有没有人知道如何通过像这样的查询方法从数据透视表中检索数据?我不想打开excel文件。查询方法很多更快,并且不会使资源停止。
我引用的数据透视表没有数据驻留在工作簿上的其他位置,这就是为什么它很棘手。这是其他人每天创建一次的文件,我相信他们会从其他地方填充数据。我知道如果双击数据透视表的右下角,它将生成一个新选项卡并显示数据,但这当然需要打开工作簿。
如果有人有任何建议,即使它不是一个完整的解决方案,我将不胜感激!我希望在vb .net中得到一个答案,但如果在C#中有一个答案,我想这也会有用;但是,我认为答案更多的是关于excel方面而不是编程语言。
更新
我真正需要的是确定从数据透视表中检索数据的正确SQL语句。