以文本方式查看主题 - 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=33493) |
||||
-- 作者:zhengboxin -- 发布时间:2013/5/19 14:25:00 -- 关于excel导入基本信息,如何自动覆盖重复值,已上传附件 希望各位老师闲余之时能帮我解决问题,当excel里某行的新EG号在SPXX里已经存在,则用excel里的覆盖SPXX原有的记录。 万分感谢!
[此贴子已经被作者于2013-5-19 14:35:37编辑过]
|
||||
-- 作者:y2287958 -- 发布时间:2013/5/19 14:29:00 -- 那些覆盖那些 搞不懂
|
||||
-- 作者:zhengboxin -- 发布时间:2013/5/19 14:34:00 -- 你好,就是说我表SPXX里面已经存在了某个新EG号,如果excel里有一行相同的新EG号,就用excel里的数据覆盖SPXX里原有的记录, 如果没有肯定是往下添加了 |
||||
-- 作者:y2287958 -- 发布时间:2013/5/19 14:59:00 -- 合并数据 如果订单表中已经存在相同编号的订单,那么就跳过此订单,可以将代码改为: Dim Book As New
XLS.Book("c:\\test\\订单.xls") 提示:其实我们用Merger合并数据会会更加简单,上述代码的目的是给大家提供另一种思路,因为在一些特殊情况下,Merger可能无法正常合并数据。 |
||||
-- 作者:don -- 发布时间:2013/5/19 15:18:00 -- 樓主的Excel文件格式有問題:無法按設定的合併條件合併(Excel文件格式最好為2003) Dim n1,n2 As Integer n1 = DataTables("SPXX").DataRows.count-1 Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "excel文件|*.xls" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim mg As New Merger mg.SourcePath = dlg.FileName mg.Format = "excel" \'指定格式 mg.SourceTableName = "Sheet1$" \'指定要合并的表 mg.DataTableName = "SPXX" \'指定接收数据的表 mg.Merge() \'开始合并 mg.filter ="新EG号 > \'\'" End If If n1 < DataTables("SPXX").DataRows.count-1 Then For n2 = n1 To 0 Step -1 dr1 = DataTables("SPXX").Find("新EG号 = \'" & Tables("SPXX")(n2,"新EG号") & "\' and [_Identify]> " & Tables("SPXX")(n2,"_Identify")) If dr1 IsNot Nothing Then Tables("SPXX").Rows(n2).Delete End If Next End If DataTables("SPXX").Save
[此贴子已经被作者于2013-5-19 15:33:14编辑过]
|
||||
-- 作者:zhengboxin -- 发布时间:2013/5/19 16:02:00 -- 谢谢楼上各位的回答,万分感谢 [此贴子已经被作者于2013-5-19 16:02:35编辑过]
|
||||
-- 作者:gsnake -- 发布时间:2013/5/19 20:19:00 -- 合并数据学习 |