Foxtable(狐表)用户栏目专家坐堂 → 如何导入".xlsx“文件?


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

主题:如何导入".xlsx“文件?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/6 9:22:00 [显示全部帖子]

 代码没问题,可以多个文件的,你只要选择多个文件,肯定能分别合并。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/6 10:54:00 [显示全部帖子]

 我测试没问题,请上传excel表格测试。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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 = "数据导入结束,可以进行分项统计!"


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/6 12:03:00 [显示全部帖子]

 是所有的xlsx文件都不行,还是说某个xlsx不行?不行的xlsx文件发上来看看。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/6 14:08:00 [显示全部帖子]

以下是引用cqlpjks在2017/1/6 14:00:00的发言:
只导入一个文件得行,选多个文件导入时只导入了第一个文件,但如果再继续导入就不得行了。

 

9楼代码,我测试,没有问题。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/6 14:46:00 [显示全部帖子]

 我Office是2010的,测试你的例子,没有任何问题,导入且不报错。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/6 15:10:00 [显示全部帖子]

以下是引用cqlpjks在2017/1/6 15:06:00的发言:

应该是这个原因了,我Office是2007版本。如遇到2010的先转换成2003或2007再导入。

 

按理,2007和2010基本是一样的。要不你重新安装office吧。


 回到顶部