以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求教大师 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43736) |
-- 作者:有点甜 -- 发布时间:2013/12/13 20:08:00 -- 请上传完整例子。 |
-- 作者:有点甜 -- 发布时间:2013/12/13 21:08:00 -- 看不懂你给的例子,详细说明一下怎么做吧。 excel表,有两个规格,两个价格,是什么意思? 你说的匹配是什么跟什么比较? 具体举例一行数据,经过什么,最后效果是什么。
|
-- 作者:有点甜 -- 发布时间:2013/12/13 21:49:00 -- 是把 品名 和 综合类 比较;品名2 和 专业类比较,然后引入 规格和价格 吗? |
-- 作者:有点甜 -- 发布时间:2013/12/13 22:40:00 -- 如下代码,直接执行便可 Dim dlg As new OpenFileDialog dlg.Filter = "Excel文件|*.xls" If dlg.ShowDialog = DialogResult.OK Then Dim book As New XLS.Book(dlg.FileName) Dim sheet As XLS.Sheet = book.Sheets(0) Dim dt As DataTable = DataTables("表A") Dim dt_log As DataTable = DataTables("表B") dt_log.DataRows.Clear For i As Integer = 3 To Sheet.Rows.Count -1 Dim xval1 As String = sheet(i, 1).Text Dim xval2 As String = sheet(i, 5).text Dim fdr As DataRow = dt.Find("品名 = \'" & xval1 & "\'") If fdr IsNot Nothing Then fdr("规格") = sheet(i, 2).Text fdr("价格") = sheet(i, 3).Text Else fdr = dt_log.Find("第二列 Is null") If fdr Is Nothing Then fdr = dt_log.AddNew End If fdr("第二列") = xval1 End If fdr = dt.Find("品名2 = \'" & xval2 & "\'") If fdr IsNot Nothing Then fdr("规格2") = sheet(i, 6).Text fdr("价格2") = sheet(i, 7).Text Else fdr = dt_log.Find("第四列 is null") If fdr Is Nothing Then fdr = dt_log.AddNew End If fdr("第四列") = xval2 End If Next For Each dr As DataRow In dt.Select("规格 is null") Dim fdr As DataRow = dt_log.Find("第一列 is null") If fdr Is Nothing Then fdr = dt_log.AddNew End If fdr("第一列") = dr("品名") Next For Each dr As DataRow In dt.Select("规格2 is null") Dim fdr As DataRow = dt_log.Find("第三列 is null") If fdr Is Nothing Then fdr = dt_log.AddNew End If fdr("第三列") = dr("品名2") Next MainTable = Tables("表B") End If |
-- 作者:有点甜 -- 发布时间:2013/12/14 22:48:00 -- 你做一个窗口,绑定表B,弄完以后打开窗口不就行了? 1、不知道表结构?不知道表头无法做。至少要知道表头,才能确定是第几列和从第几行开始。如果你能总结出规律也可以。 2、上面说了。 3、手工选择品名匹配?是说,张三可以匹配李四,导入李四的数据?如果这样,你单独做一张匹配表,说明哪个匹配哪个。
|