如何将excel导入到datagrid,然后通过db值进行过滤。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将excel导入到datagrid,然后通过db值进行过滤。相关的知识,希望对你有一定的参考价值。
我的问题是关于导入excel到datagridview,但有一个额外的情况。
我也有一个OLEDB数据库,有商店代码和商店名称。
我想让它只显示数据库中导入后的商店代码。
我的代码在这里。
Dim conn As OleDbConnection
Dim dtr As OleDbDataReader
Dim dta As OleDbDataAdapter
Dim cmd As OleDbCommand
Dim dts As DataSet
Dim excel As String
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog1.FileName = ""
OpenFileDialog1.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
OpenFileDialog1.Filter = "All Files (*.*)|*.*|Excel files (*.xlsx)|*.xlsx|CSV Files (*.csv)|*.csv|XLS Files (*.xls)|*xls"
If (OpenFileDialog1.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
DataGridView1.Columns.Clear()
Dim fi As New FileInfo(OpenFileDialog1.FileName)
Dim FileName As String = OpenFileDialog1.FileName
excel = fi.FullName
conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excel + ";Extended Properties=Excel 12.0;")
dta = New OleDbDataAdapter("Select * From [Sheet1$]", conn)
dts = New DataSet
dta.Fill(dts, "[Sheet1$]")
DataGridView1.DataSource = dts
DataGridView1.DataMember = "[Sheet1$]"
conn.Close()
End If
首先对不起我糟糕的英语:)
图片如下。
我想只在商店列表中的那些显示在datagrid中。
不太清楚你当前的presentationdisplay是什么样子,问题出在哪里,以及你想要的presentationdisplay应该是什么样子。 但您询问的是只选择导入数据的一部分,这大概是在导入的Excel数据中只有一列中发现的。
当 datatable
的创建,它有来自Excel工作表的列和行。 列是第一行的数据,行是工作表中后续行的记录。 你可以很容易地访问头数据和行数据。 下面的代码非常粗略,但可以让你看到如何访问工作表中的数据。datatable
你已经在上面所示的有限代码中非常成功地导入了。
Dim columns = datatable.Columns
Dim rows = datatable.Rows
Dim columns1 = columns(0)
Dim rows1 = rows(0)
Dim element1 = rows1(0)
列会有所有的标题,所以你可以找到带有商店代码或商店名称的列。 然后行里会有每个店铺的数据。 所以上图中,rows1是第一行数据,元素1是列1中该行的数据,以此类推。 在 (0)
是进入各个集合的索引。
当然,你必须写代码来提取你想要的数据,必要时还要消除重复的数据,但数据都已经存在了。
希望把数据弄到一个列表中,然后对数据进行排序、过滤和选择,应该是比较简单的,但如果不是,就加个评论。 这算是一个不同的问题。 你问的是只获取店铺代码。
已经补充了。 根据你的补充图片和解释 你想执行SQL INNER JOIN操作 从w3schools.com关于SQL INNER JOIN的页面上看,"INNER JOIN关键字会选择两个表的所有行,只要列之间存在匹配"。这是你必须研究和学习的,但它应该提供你在这种情况下所需要的东西。 你需要定义和构造两个表,然后执行JOIN。
顺便说一下,你也可以按照T.S.第一条评论中提供的链接,如果这能解决你的问题,那就是一个更简单的解决方案。
以上是关于如何将excel导入到datagrid,然后通过db值进行过滤。的主要内容,如果未能解决你的问题,请参考以下文章