以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何导入".xlsx“文件?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=94955)

--  作者:cqlpjks
--  发布时间:2017/1/6 8:52:00
--  如何导入".xlsx“文件?

 导入 ".xls"文件时:   

Else If fl.ToLower.EndsWith(".xls") Then
            Dim Book As New xls.Book(fl)
            For Each Sheet As xls.Sheet In Book.Sheets \'引用新增加的工作表
                Dim mg As New Merger
                mg.SourcePath = fl \'指定数据文件所在目录
                mg.Format = "excel" \'指定格式
                mg.SourceTableName = sheet.Name & "$"
                mg.DataTableName = "成绩库" \'指定接收数据的表
                mg.Merge() \'开始合并
            Next
如果导入的是".xlsx“文件,怎么修改代码?请指教。谢谢!


--  作者:有点蓝
--  发布时间:2017/1/6 9:02:00
--  
If fl.ToLower.EndsWith(".xlsx") Then
            Dim Book As New xls.Book(fl)
            For Each Sheet As xls.Sheet In Book.Sheets \'引用新增加的工作表
                Dim mg As New Merger
                mg.SourcePath = fl \'指定数据文件所在目录
                mg.Format = "excel2007" \'指定格式
                mg.SourceTableName = sheet.Name & "$"
                mg.DataTableName = "成绩库" \'指定接收数据的表
                mg.Merge() \'开始合并
            Next
--  作者:有点色
--  发布时间:2017/1/6 9:09:00
--  

Else If fl.ToLower.EndsWith(".xls") Then

 

改成

 

Else If fl.ToLower.EndsWith(".xls") OrElse fl.ToLower.EndsWith(".xlsx")  Then


--  作者:cqlpjks
--  发布时间:2017/1/6 9:13:00
--  

收到。谢谢!但只能导入一个文件了,不能导入多个文件。请指教。谢谢!

Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "数据库文件|*.dbf;*.xls;*.xlsx|全部|*.*"
If dlg.ShowDialog = DialogResult.OK Then
    For Each fl As String In dlg.FileNames
        If fl.ToLower.EndsWith(".dbf") Then
            Dim wjm As String = FileSys.GetName(fl)
            Dim mg As New Merger
            mg.SourcePath = FileSys.GetParentPath(fl) \'指定数据文件所在目录
            mg.Format = "dbase" \'指定格式
            mg.SourceTableName =  wjm \'指定要合并的dbase文件,无需扩展名
            mg.DataTableName = "成绩库" \'指定接收数据的表
            mg.Merge() \'开始合并
        Else If fl.ToLower.EndsWith(".xls") Then
            Dim Book As New xls.Book(fl)
            For Each Sheet As xls.Sheet In Book.Sheets \'引用新增加的工作表
                Dim mg As New Merger
                mg.SourcePath = fl \'指定数据文件所在目录
                mg.Format = "excel" \'指定格式
                mg.SourceTableName = sheet.Name & "$"
                mg.DataTableName = "成绩库" \'指定接收数据的表
                mg.Merge() \'开始合并
            Next
        Else If fl.ToLower.EndsWith(".xlsx") Then
            Dim Book As New xls.Book(fl)
            For Each Sheet As xls.Sheet In Book.Sheets \'引用新增加的工作表
                Dim mg As New Merger
                mg.SourcePath = fl \'指定数据文件所在目录
                mg.Format = "excel2007" \'指定格式
                mg.SourceTableName = sheet.Name & "$"
                mg.DataTableName = "成绩库" \'指定接收数据的表
                mg.Merge() \'开始合并
            Next
        End If
    Next
End If

 


--  作者:有点色
--  发布时间:2017/1/6 9:22:00
--  
 代码没问题,可以多个文件的,你只要选择多个文件,肯定能分别合并。
--  作者:cqlpjks
--  发布时间:2017/1/6 10:51:00
--  
导入多个文件还是不得行。请指教。谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:阅卷教师名册整理.rar


--  作者:有点色
--  发布时间:2017/1/6 10:54:00
--  
 我测试没问题,请上传excel表格测试。
--  作者:cqlpjks
--  发布时间:2017/1/6 11:10:00
--  

已上传汇总名册。谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:阅卷教师名册.rar


--  作者:有点色
--  发布时间:2017/1/6 11:18:00
--  

你datacolchanged事件影响了

 

Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "数据库文件|*.dbf;*.xls;*.xlsx|全部|*.*"
If dlg.ShowDialog = DialogResult.OK Then
    systemready = False
    For Each fl As String In dlg.FileNames
        If fl.ToLower.EndsWith(".dbf") Then
            Dim wjm As String = FileSys.GetName(fl)
            Dim mg As New Merger
            mg.SourcePath = FileSys.GetParentPath(fl) \'指定数据文件所在目录
            mg.Format = "dbase" \'指定格式
            mg.SourceTableName =  wjm \'指定要合并的dbase文件,无需扩展名
            mg.DataTableName = "成绩库" \'指定接收数据的表
            mg.Merge() \'开始合并
        Else If fl.ToLower.EndsWith(".xls") Then
            Dim Book As New xls.Book(fl)
            For Each Sheet As xls.Sheet In Book.Sheets \'引用新增加的工作表
                Dim mg As New Merger
                mg.SourcePath = fl \'指定数据文件所在目录
                mg.Format = "excel" \'指定格式
                mg.SourceTableName = sheet.Name & "$"
                mg.DataTableName = "成绩库" \'指定接收数据的表
                mg.Merge() \'开始合并
            Next
        Else If fl.ToLower.EndsWith(".xlsx") Then
            Dim Book As New xls.Book(fl)
            For Each Sheet As xls.Sheet In Book.Sheets \'引用新增加的工作表
                Dim mg As New Merger
                mg.SourcePath = fl \'指定数据文件所在目录
                mg.Format = "excel2007" \'指定格式
                mg.SourceTableName = sheet.Name & "$"
                mg.DataTableName = "成绩库" \'指定接收数据的表
                mg.Merge() \'开始合并
            Next
        End If
    Next
    DataTables("成绩库").DeleteFor("单位 is null")
    systemready = True
End If

e.Form.Controls("Label1").Text = "数据导入结束,可以进行分项统计!"


--  作者:cqlpjks
--  发布时间:2017/1/6 11:44:00
--  
表属性datacolchanged事件已经删了,还是不得行。
图片点击可在新窗口打开查看此主题相关图片如下:报错.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/1/6 11:45:35编辑过]