以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]符合条件导入问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=136154) |
||||||||
-- 作者:HANZHIGANG -- 发布时间:2019/6/8 21:34:00 -- [求助]符合条件导入问题 如上传的测试: 想达到以下目的:如果导入的EXCEL样表中,主机厂、商品车、清单号、底盘号四列中的任意三列与表A中相应列的内容符,并且表A中的“是否二次”列不为TRUE,则导入用表中的实际对账金额导入至表A相对应的实际对账金额列中,并在表A中的自动生成对账单号DZH+当日的年月日00X 如以上四列中的任意三列与表A对应列不符,则将不符的行导入到表B中。并弹出对话框,统计出有多少条信息对账成功,多少条对账不成功(导入到表B的即为对账不成功的信息)。 简单的说,就是符合条件的行,实际对账金额导入到表A对应价格列里,其他不符合的行导入到表B中 代码如何实现?老师指导。
[此贴子已经被作者于2019/6/9 10:25:09编辑过]
|
||||||||
-- 作者:有点甜 -- 发布时间:2019/6/9 10:41:00 -- Dim dlg As New OpenFileDialog dlg.Filter = "Excel文件|*.xls;*.xlsx" If dlg.ShowDialog =DialogResult.OK Then Dim t As Table = Tables("表A") Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) For n As Integer = 1 To Sheet.Rows.Count -1 Dim cr As Row = Nothing For Each r As Row In t.Rows Dim count As Integer = 0 If r("主机厂") = sheet(n, 0).text Then count += 1 If r("商品车") = sheet(n, 2).text Then count += 1 If r("清单号") = sheet(n, 3).text Then count += 1 If r("底盘号") = sheet(n, 4).text Then count += 1 If count >= 3 Then cr = r Exit For End If Next If cr Is Nothing Then cr = Tables("表B").AddNew() For i As Integer = 0 To sheet.Cols.Count -1 Dim cname As String = sheet(0, i).text If cr.Table.Cols.Contains(cname) Then cr(cname) = sheet(n, i).Text ElseIf cname = "对账金额" Then cr("实际对账金额") = sheet(n, i).Text End If Next Next End If |
||||||||
-- 作者:HANZHIGANG -- 发布时间:2019/6/9 11:02:00 -- 老师,我加了个窗口,测试了一下,没成功呢,还得您帮忙看一下 现在是符不符合条件的都导入到表BK中了,符合条件的也没导入到表A 另外没提示分别导入的条数
[此贴子已经被作者于2019/6/9 11:16:34编辑过]
|
||||||||
-- 作者:有点甜 -- 发布时间:2019/6/9 11:25:00 --
你上次的excel,我用代码测试没问题。
|
||||||||
-- 作者:HANZHIGANG -- 发布时间:2019/6/9 13:26:00 -- 老师,我重测了一下,符合条件的也导入表B了,实际应该是导入表A的 |
||||||||
-- 作者:有点甜 -- 发布时间:2019/6/9 17:08:00 -- 1、excel文件发上来测试;
2、截图说明哪条数据符合。 |
||||||||
-- 作者:HANZHIGANG -- 发布时间:2019/6/10 11:00:00 -- EXCEL123456这个表的信息都是符合条件的,应该导入到表A,但实际导入时却都导入到表B中 还有就是没有提示各表导入的条数
|
||||||||
-- 作者:有点甜 -- 发布时间:2019/6/10 12:32:00 -- Dim dlg As New OpenFileDialog dlg.Filter = "Excel文件|*.xls;*.xlsx" If dlg.ShowDialog =DialogResult.OK Then Dim t As Table = Tables("表A") Dim n1 As Integer = 0 Dim n2 As Integer = 0 Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets(0) For n As Integer = 1 To Sheet.Rows.Count -1 Dim cr As Row = Nothing For Each r As Row In t.Rows Dim count As Integer = 0 If r("主机厂") = sheet(n, 0).text Then count += 1 If r("商品车") = sheet(n, 1).text Then count += 1 If r("清单号") = sheet(n, 2).text Then count += 1 If r("底盘号") = sheet(n, 3).text Then count += 1 If count >= 3 Then cr = r Exit For End If Next If cr Is Nothing Then cr = Tables("表B").AddNew() n1 += 1 Else n2 += 1 End If For i As Integer = 0 To sheet.Cols.Count -1 Dim cname As String = sheet(0, i).text If cr.Table.Cols.Contains(cname) Then cr(cname) = sheet(n, i).Text ElseIf cname = "对账金额" Then cr("实际对账金额") = sheet(n, i).Text End If Next Next msgbox(n1 & " " & n2) End If |