Foxtable(狐表)用户栏目专家坐堂 → 课程表导入


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

主题:课程表导入

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14943 威望:0 精华:0 注册:2016/4/28 9:58:00
课程表导入  发帖心情 Post By:2016/9/21 15:35:00 [只看该作者]

一、如何将课程表.xls的内容,星期,节次,科目导入到教务管理系统中课程表星期,节次,科目,这样可不再逐行录入。
二、将教务管理系统中的课程表做出一个像课程表.xls的结构的课程表,方便常握各班课程表。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:教务管理系统.rar

想法有点怪异,请指导,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:课程表.xls


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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14943 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/9/21 16:12:00 [只看该作者]

课程表改成这种,在sheet1中是课程表明细,sheet2是任课教师,请问窗口中设计一个方案直接将xls中的,班级,星期,节次,科目,任课教师导入表,再根据课程表记录生成班级二维课程表,请各位高手指点,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:课程表.xls


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


加好友 发短信
等级:超级版主 帖子:109463 积分:556971 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/21 16:29:00 [只看该作者]


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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14943 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/9/21 17:30:00 [只看该作者]

改不出来,请指教,谢谢

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14943 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/9/21 20:04:00 [只看该作者]

Dim Book As New XLS.Book("c:\test\课程表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("课程表").StopRedraw()
Dim nms() As String = {"班级","星期","节次","科目"}
For n As Integer = 1 To Sheet.Rows.Count -1 
    Dim bh As String = sheet(n,0).Text 
    Dim dr As DataRow = DataTables("课程表").Find("班级 = '" & bh & "'") 
    If dr Is Nothing Then '如果不存在同编号的订单
        dr =  DataTables("课程表").AddNew()
    End If
    For m As Integer = 0 To nms.Length - 1
        dr(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables("课程表").ResumeRedraw()       改不对,没达到目的.请帮改一下,谢谢

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


加好友 发短信
等级:超级版主 帖子:109463 积分:556971 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/21 21:05:00 [只看该作者]

首先,去掉Execl文件,E-F列的合并单元格

代码
Dim Book As New XLS.Book("D:\问题\课程表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("课程表").StopRedraw()
Dim dr As Row
For n As Integer = 2 To Sheet.Rows.Count -1
    Dim bj As String =  Sheet(n,0).Value
    Dim jc As String =  Sheet(n,1).Value
    
    For m As Integer = 2 To 6
        dr = Tables("课程表").AddNew
        dr("班级") = bj
        dr("节次") = jc
        dr("星期") = m-1
        dr("科目") = Sheet(n,m).Value
    Next
Next
Tables("课程表").ResumeRedraw()

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14943 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/9/22 8:34:00 [只看该作者]

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("课程表").StopRedraw()
    For n As Integer = 2 To Sheet.Rows.Count -1
        Dim bj As String =  Sheet(n,2).Value
        Dim jc As String =  Sheet(n,3).Value
        Dim mc As String = sheet(n,0).value
        Dim dm As String = sheet(n,1).value
        For m As Integer = 4 To 8
            Dim dr As DataRow = DataTables("课程表").Find("班级 = '" & bj & "'and 星期 = '" & cstr(m-3) & "' and 节次 = '" & jc &  "'")
            If dr Is Nothing Then '如果不存在同编号的订单
                dr =  DataTables("课程表").AddNew()
            End If
            dr("学校名称") = mc
            dr("学校代码") = dm
            dr("班级") = bj
            dr("节次") = jc
            dr("星期") = cstr(m-3)
            dr("科目") = Sheet(n,m).Value
        Next
    Next
    Tables("课程表").ResumeRedraw()
End If

老师,非常谢谢,通过你的指导我学到了很多,我做了个增加,但一至还有个搞不清楚,就是把课程表中的sheet(1)中教师任课表用班级对应导入课程表中的任课教师字段。请指导教,谢谢!!

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


加好友 发短信
等级:超级版主 帖子:109463 积分:556971 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/22 9:01:00 [只看该作者]

Dim Book As New XLS.Book("F:\H\问题测试\课程表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("课程表").StopRedraw()
Dim dr As Row
For n As Integer = 2 To Sheet.Rows.Count -1
    Dim bj As String =  Sheet(n,0).Value
    Dim jc As String =  Sheet(n,1).Value
    
    For m As Integer = 2 To 6
        dr = Tables("课程表").AddNew
        dr("班级") = bj
        dr("节次") = jc
        dr("星期") = m-1
        dr("科目") = Sheet(n,m).Value
    Next
Next
Dim kms() As String = {"语文","数学","英语","政治","历史"} '其它科目自己添加
Sheet  = Book.Sheets(1)
Dim drs As List(of DataRow)
For n As Integer = 3 To Sheet.Rows.Count -1
    Dim bj As String =  Sheet(n,0).Value
    
    For m As Integer = 0 To kms.Length - 1
        If Sheet(n,m+2).Value > "" Then
            drs = DataTables("课程表").Select("班级 = '" & bj & "' and 科目 = '" & kms(m) & "'")
            For Each r As DataRow In drs
                r("任课教师") = Sheet(n,m+2).Value
            Next
        End If
    Next
Next
Tables("课程表").ResumeRedraw()

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14943 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/9/22 10:25:00 [只看该作者]

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel|*.xls;*.xlsx"
If dlg.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("课程表").StopRedraw()
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim bj As String =  Sheet(n,2).Value
        Dim jc As String =  Sheet(n,3).Value
        Dim mc As String = sheet(n,0).value
        Dim dm As String = sheet(n,1).value
        For m As Integer = 4 To 8
            Dim dr As DataRow = DataTables("课程表").Find("班级 = '" & bj & "'and 星期 = '" & cstr(m-3) & "' and 节次 = '" & jc &  "'")
            If dr Is Nothing Then '如果不存在同编号的订单
                dr =  DataTables("课程表").AddNew()
            End If
            dr("学校名称") = mc
            dr("学校代码") = dm
            dr("班级") = bj
            dr("节次") = jc
            dr("星期") = cstr(m-3)
            dr("科目") = Sheet(n,m).Value
        Next
    Next
    Dim kms() As String = {"语文","数学","英语","政治","历史","生物","地理","物理","化学","音乐","美术","体育","班会","微机"} '其它科目自己添加
    Sheet = Book.Sheets(1)
    Dim drs As List(of DataRow)
    For n As Integer = 3 To Sheet.Rows.Count -1
        Dim bj As String =  Sheet(n,0).Value
        
        For m As Integer = 0 To kms.Length - 1
            If Sheet(n,m+1).Value > "" Then
                drs = DataTables("课程表").Select("班级 = '" & bj & "' and 科目 = '" & kms(m) & "'")
                For Each r As DataRow In drs
                    r("任课教师") = Sheet(n,m+2).Value
                Next
            End If
        Next
    Next
    Tables("课程表").ResumeRedraw()
End If    
老师,现在调得差不多了,但不晓得什么原因,其他教师能导入,但物理,体育教师导不进,请指导,谢谢

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


加好友 发短信
等级:超级版主 帖子:109463 积分:556971 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/22 10:29:00 [只看该作者]

是不是有合并单元格或者隐藏列

自己跟踪一下数据

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm

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