Foxtable(狐表)用户栏目专家坐堂 → 如何给导入语句加上判断是否内容已经存在的操作?求个拓展功能,就是导入前能用XLS文件的标题和数据表的标题做一个对比,一致时才开始导入


  共有8017人关注过本帖树形打印复制链接

主题:如何给导入语句加上判断是否内容已经存在的操作?求个拓展功能,就是导入前能用XLS文件的标题和数据表的标题做一个对比,一致时才开始导入

帅哥哟,离线,有人找我吗?
goodhi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1179 威望:0 精华:1 注册:2011/9/16 11:15:00
如何给导入语句加上判断是否内容已经存在的操作?求个拓展功能,就是导入前能用XLS文件的标题和数据表的标题做一个对比,一致时才开始导入  发帖心情 Post By:2013/3/12 10:56:00 [只看该作者]

 With Tables("公司")
    .Fill("SELECT  公司编码, 公司名称 ,营业执照名称, 楼层 , 单元,  联系人, 联系电话, 办公电话 , 传真电话 ,  备注  From {公司}","YLLF",True)
    .Sort = "公司编码 DESC"
    .ListMode = True
    .AutoSizeCols()
   ' .SetColVisibleWidth("公司编码|60|公司名称|200|营业执照名称|200|备注|200|楼层|45|单元|45|联系人|100|联系电话|100|办公电话|100|传真电话|100")
End With

'导入
Dim dlg As New OpenFileDialog '定义一个新的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)
    For i As Integer = 0 To Sheet.Cols.Count -1
        If CurrentTable.Cols.Contains( Sheet(0,i).Value) = False Then
            MessageBox.Show("目标文件不含【" & Sheet(0,i).Value & "】列,请修改与目标文件一致!", "导入错误提示")
            Return
        End If
    Next
    For r As Integer = 1 To Sheet.Rows.Count - 1
        'Dim dr As Row = CurrentTable.AddNew()
         Dim dr As Row=   Tables("公司").AddNew() '增加一行
        For c As Integer = 0 To Sheet.Cols.Count - 1
            dr(Sheet(0,c).Value) = Sheet(r,c).Value
            Tables("公司").Current.Save '保存
        Next
    Next
End If
我写的这个导入XLS文件,没有识别重复内容的判断
应该怎么加呢?
[此贴子已经被作者于2013-3-12 17:15:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
muhua
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/12 11:30:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/12 11:35:00 [只看该作者]

帮助提供了一个例子:

http://www.foxtable.com/help/topics/2334.htm

 

 

这个例子是无条件的,假定多了一个编号列,而且要求订单表中已经存在相同编号的订单,那么就跳过此订单,可以将代码改为:

 
 Dim Book As New XLS.Book("c:\test\订单.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"编号","产品","客户","雇员","单价","折扣","数量","日期"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,0).Text  '假定编号位于Excel表的第一列
    If DataTables("订单").Find("编号 = '" & bh & "'") Is Nothing Then '如果不存在同编号的订单
        Dim r As Row = Tables("订单").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    End If
Next
Tables("订单").ResumeRedraw()

 


 

[此贴子已经被作者于2013-3-12 11:36:37编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
goodhi
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:137 积分:1179 威望:0 精华:1 注册:2011/9/16 11:15:00
  发帖心情 Post By:2013/3/12 16:11:00 [只看该作者]

求个拓展功能,就是导入前能用XLS文件的标题和数据表的标题做一个对比,一致时才开始导入
[此贴子已经被作者于2013-3-12 16:13:54编辑过]

 回到顶部