以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]合并excel数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175351) |
-- 作者:jygyyl -- 发布时间:2022/3/1 18:05:00 -- [求助]合并excel数据 求教,如何实现在合并过程中查找是否存在"证件号码"和"管号"相同的行,存在跳过,不存在则增加?下面代码如何修改? Dim dlg As new OpenFileDialog dlg.Filter = "excel文件|*.xls;*.xlsx" dlg.MultiSelect = True If dlg.ShowDialog = DialogResult.OK Then For Each f As String In dlg.FileNames Dim Book As New XLS.Book(f) Dim Sheet As XLS.Sheet = Book.Sheets(0) Tables("jcjgsbsj").StopRedraw() Dim nms() As String = {"姓名","证件号码","核酸检测结果","核酸检测时间","核酸检测机构","管号","行政区名称"} For n As Integer = 1 To Sheet.Rows.Count -1 Dim bh As String = sheet(n,1).Text MessageBox.Show("\'"& bh &"\'") If bh = "" Then DataTables("jcjgsbsj").LoadTop = "100" DataTables("jcjgsbsj").Load Tables("jcjgsbsj").ResumeRedraw() Exit For Else Dim dr As DataRow = DataTables("jcjgsbsj").Find(" 证件号码 = \'" & bh & "\'") If dr Is Nothing Then \'如果不存在同批号的订单 dr = DataTables("jcjgsbsj").AddNew() End If For m As Integer = 0 To nms.Length - 1 If nms(m) > "" Then dr(nms(m)) = Sheet(n,m).Value End If Next End If Next Tables("jcjgsbsj").ResumeRedraw() Next End If
[此贴子已经被作者于2022/3/1 18:09:06编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/3/1 20:17:00 -- …… If dlg.ShowDialog = DialogResult.OK Then Tables("jcjgsbsj").StopRedraw() For Each f As String In dlg.FileNames Dim Book As New XLS.Book(f) Dim Sheet As XLS.Sheet = Book.Sheets(0) Dim nms() As String = {"姓名","证件号码","核酸检测结果","核酸检测时间","核酸检测机构","管号","行政区名称"} For n As Integer = 1 To Sheet.Rows.Count -1 Dim bh As String = sheet(n,1).Text Dim gh As String = sheet(n,5).Text MessageBox.Show("\'"& bh &"\'") If bh > "" andalso gh > "" Then Dim dr As DataRow = DataTables("jcjgsbsj").Find(" 证件号码 = \'" & bh & "\' and 管号= \'" & gh & "\'") If dr Is Nothing Then \'如果不存在同批号的订单 dr = DataTables("jcjgsbsj").AddNew() For m As Integer = 0 To nms.Length - 1 dr(nms(m)) = Sheet(n,m).Value Next End If next Next Next Tables("jcjgsbsj").ResumeRedraw() End If |
-- 作者:YANGDADA -- 发布时间:2022/3/2 11:22:00 -- 这个代码会不会因为不同日期存在相同证件号和管号的情况而录不进去? |
-- 作者:有点蓝 -- 发布时间:2022/3/2 11:32:00 -- 如果有这种情况,需要怎么处理? |
-- 作者:YANGDADA -- 发布时间:2022/3/3 9:54:00 -- 添加日期的验证 |
-- 作者:有点蓝 -- 发布时间:2022/3/3 10:06:00 -- 和管号的用法一样,也加到查询条件里 |
-- 作者:jygyyl -- 发布时间:2022/3/8 9:29:00 -- 回复:(有点蓝)……If dlg.ShowDialog = DialogResu... 谢谢蓝老师,功能可以实现。但存在效率问题,提示证件号码存在,需反复点击确定才能继续,如何完善? 补充说明:管号表内允许重复,证件号码也允许重复,但管号只能使用1次,因此不存不同日期存在相同证件号和管号的情况
|
-- 作者:有点蓝 -- 发布时间:2022/3/8 10:38:00 -- 把自己代码里的MessageBox去掉咯 |