Foxtable(狐表)用户栏目专家坐堂 → excel报表合并


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

主题:excel报表合并

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


加好友 发短信
等级:三尾狐 帖子:658 积分:7890 威望:0 精华:0 注册:2013/12/11 17:49:00
excel报表合并  发帖心情 Post By:2014/11/11 10:48:00 [只看该作者]

下面这段代码能实现去重复,但是如果数组中列名称的顺序和Excel表中的列顺序不一致会错误,请问一下 列名称的顺序和Excel表中的列顺序不一致的情况下代码该怎么修改?
Dim Book As New XLS.Book(dlg.filename)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("计时临时考勤表").StopRedraw()
    '注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
    Dim nms() As String = {"工号","部门名称","姓名","正常出勤","平常加班","假日加班","合计考勤","考勤扣款","满勤天数","合计调休天数","高温补贴"}
    
    Dim i As Integer =0
    Dim k As Integer=0
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim gh As String = sheet(n,0).Text 'excel文件第3列
        If DataTables("计时临时考勤表").Find("工号 = '" & gh & "' ") 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
                r("日期") = _xzyf
            Next
            i=i+1 '记录导入条数
        Else
            For Each r As Row In Tables("计时工资_table1").Rows
                If r("工号") =gh  Then
                    r.Checked = True
                End If
            Next
        End If
    Next
    MessageBox.Show("共有" & Sheet.Rows.Count -1 &"条记录,成功导入" & i & "记录 ,重复记录为" & Sheet.Rows.Count -1 -i & "条" )
    Tables("计时临时考勤表").ResumeRedraw()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/11 10:55:00 [只看该作者]

 如果excel的第一行是列名,且列名和表的一致,才能用代码控制的。

 

 1、循环第一行数据,生成一个数组;

 

 2、记录工号是第几列;

 

 3、用数组和工号继续后面操作


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/11/11 10:56:00 [只看该作者]


 回到顶部