Foxtable(狐表)用户栏目专家坐堂 → [求助] 合并考勤记录表,求助


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

主题:[求助] 合并考勤记录表,求助

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/16 16:52:00 [显示全部帖子]

分析excel的表结构,然后读取数据出来。

 

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

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/16 17:14:00 [显示全部帖子]

1、把xls另存为excel97-2003格式

 

2、用下面代码

 

Dim dlg As new OpenFileDialog
dlg.Filter = "excle|*.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.Rows.Count - 1
        If sheet(i,0).Text Like "单位*"  Then
            output.show(sheet(i,7).Text)
            For r As Integer = i+5 To sheet.Rows.Count - 1
                If sheet(r,0).Text = Nothing Then
                    i = r
                    Exit For
                Else
                    output.show(sheet(r,2).Text)
                End If
            Next
        End If
    Next
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/16 17:20:00 [显示全部帖子]

不想另存为,就用vba打开

 

Dim dlg As new OpenFileDialog
dlg.Filter = "excle|*.xls"
If dlg.ShowDialog = DialogResult.OK Then
    Dim App As New MSExcel.Application
    try
        Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
        Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
        For i As Integer = 1 To ws.UsedRange.Rows.Count
            If ws.cells(i,1).Text Like "单位*"  Then
                output.show(ws.cells(i,8).Text)
                For r As Integer = i+5 To ws.UsedRange.Rows.Count
                    If ws.cells(r,1).Text = Nothing Then
                        i = r
                        Exit For
                    Else
                        output.show(ws.cells(r,3).Text)
                    End If
                Next
            End If
        Next
    catch ex As exception
        msgbox(ex.message)
    finally
        app.quit
    End try
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/16 17:33:00 [显示全部帖子]

参考上面的代码,要获取什么都可以。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/16 17:47:00 [显示全部帖子]

改变这个的值,任意获取啊

 

output.show(ws.cells(r,3).Text)


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/25 12:00:00 [显示全部帖子]

请正确上传图片文件,看不到。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/25 14:09:00 [显示全部帖子]


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/25 15:55:00 [显示全部帖子]

什么意思?你要获取哪一个单元格就该这句代码啊

 

ws.cells(r, nnnnnnnnnnnnnnnnnnn).Text

 

 

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/25 16:04:00 [显示全部帖子]

Dim dlg As new OpenFileDialog
dlg.Filter = "excle|*.xls"
If dlg.ShowDialog = DialogResult.OK Then
    Dim App As New MSExcel.Application
    try
        Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
        Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
        For i As Integer = 1 To ws.UsedRange.Rows.Count
            If ws.cells(i,1).Text Like "单位*"  Then               
                For r As Integer = i+5 To ws.UsedRange.Rows.Count
                    If ws.cells(r,1).Text = Nothing Then
                        i = r
                        Exit For
                    Else
                        Dim 新行  As DataRow
                        新行 = DataTables("考勤记录").AddNew()
                        新行("员工工号") = ws.cells(i,8).Text
                        新行("日期") = ws.cells(r,1).Text

                    End If
                Next
            End If
        Next
    catch ex As exception
        msgbox(ex.message)
    finally
        app.quit
    End try
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/25 16:18:00 [显示全部帖子]

Dim 新行  As DataRow
新行 = DataTables("考勤记录").AddNew()
新行("员工工号") = ws.cells(i,8).Text
新行("日期") = ws.cells(r,1).Text
Dim 新行2 As DataRow
新行2 = DataTables("考勤记录").AddNew()
新行2("员工工号") = ws.cells(i,8).Text
新行2("日期") = ws.cells(r,nnnnnn).Text


 回到顶部
总数 11 1 2 下一页