Foxtable(狐表)用户栏目专家坐堂 → [求助]多选excel一次导入foxtable问题


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

主题:[求助]多选excel一次导入foxtable问题

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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
[求助]多选excel一次导入foxtable问题  发帖心情 Post By:2016/9/13 8:25:00 [显示全部帖子]

如何“多选 架构一样 excel文件“一次性导入到FOXTABLE?

DataTables("表1").DataRows.Clear
Dim dlg As New OpenFileDialog
dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你选择的是:" & dlg.FileName,"提示")
    If MessageBox.Show("是否合并?","请确 认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then
        DataTables("表1").StopRedraw
        Dim App As New MSExcel.Application
        try
            Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
            Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(2) ‘标签2
            Dim Rg As MSExcel.Range = Ws.UsedRange
            Dim cs() As String = { "123",”131“ }  ‘导入列表名列表
            For n As Integer = 2 To rg.Rows.Count
                Dim ro As Row = Tables("表1").AddNew
                For i As Integer = 0 To cs.length - 1
                    ro(cs(i)) = ws.Cells(n,i+1).Text
                Next
            Next
            MessageBox.Show("导入成功!","恭喜!")
        catch ex As exception
            msgbox(ex.message)
            MessageBox.Show("导入失败!","遗憾!")
        finally
            DataTables("表1").ResumeRedraw
            app.quit
        End try
    Else
        'Return
    End If
[此贴子已经被作者于2016/9/13 8:51:24编辑过]

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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
  发帖心情 Post By:2016/9/13 9:10:00 [显示全部帖子]

老大,我这“一开始,打开选择目录,怎么多选EXCEL”?现在只能选一个EXCEL文件

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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
  发帖心情 Post By:2016/9/13 9:55:00 [显示全部帖子]

是以下代码问题么?不能多选啊?  CTRL无效啊


DataTables("表1").DataRows.Clear
Dim dlg As New OpenFileDialog
dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你选择的是:" & dlg.FileName,"提示")
    If MessageBox.Show("是否合并?","请确 认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then
        DataTables("表1").StopRedraw
................................................................
        




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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
  发帖心情 Post By:2016/9/13 10:35:00 [显示全部帖子]

我的天啊~~~~


您这直接给来个加   “dlg.MultiSelect = True”  代码不得了吗?我的天!




DataTables("表1").DataRows.Clear
Dim dlg As New OpenFileDialog
dlg.MultiSelect = True
dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你选择的是:" & dlg.FileName,"提示")   ‘这里是否需要修改?显示都选了几个文件?但是FileNames说维数错误!
    If MessageBox.Show("是否合并?","请确 认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then
        DataTables("表1").StopRedraw
        Dim App As New MSExcel.Application
        try
            Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
            Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(2) ‘标签2
            Dim Rg As MSExcel.Range = Ws.UsedRange
            Dim cs() As String = { "123",”131“ }  ‘导入列表名列表
            For n As Integer = 2 To rg.Rows.Count
                Dim ro As Row = Tables("表1").AddNew
                For i As Integer = 0 To cs.length - 1
                    ro(cs(i)) = ws.Cells(n,i+1).Text                             是否是这里定义多excel 维度有错误与上面名字?请给润润笔
                Next
            Next
            MessageBox.Show("导入成功!","恭喜!")
        catch ex As exception
            msgbox(ex.message)
            MessageBox.Show("导入失败!","遗憾!")
        finally
            DataTables("表1").ResumeRedraw
            app.quit
        End try
    Else
        'Return
    End If




[此贴子已经被作者于2016/9/13 10:41:51编辑过]

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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
  发帖心情 Post By:2016/9/13 12:18:00 [显示全部帖子]

不好意思老大! 1、下面这段是否可以“提高倒入速度”?我前两天看一帖子,多维导入,没有text! For i As Integer = 0 To cs.length - 1 ro(cs(i)) = ws.Cells(n,i+1).Text 2、开头 filemanes部分多文件选定后,提示语句是否更改成“您是否确定导入选定的“xx变量个数文件”?(选了1个就1个选了100个就提示100个待导入excel? (本来我是想实现,打开目录选多个excel,确定后提示“选定文件名合集,问我是否导入这些选定名文件”! 3、以上代码如何编写实现导入表格excel时,excel本身单元格没设置长日期时间格式,是3334.3444数字值,我已在fox里设置单元格 时间+长日期时间!导入失败

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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
  发帖心情 Post By:2016/9/13 20:44:00 [显示全部帖子]

对不起失误了,貌似 2OO3版与2007版不能一起选,只能单独版本一次多选

try
            For Each file As String In dlg.FileNames
                Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(file)
                Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(2) '标签2
                Dim Rg As MSExcel.Range = Ws.UsedRange
                Dim cs() As String = { "123","131" }  '导入列表名列表
                For n As Integer = 2 To rg.Rows.Count                                 ’多excel可带入,但是单表大就速度慢。 
                    Dim ro As Row = Tables("表1").AddNew 
                    For i As Integer = 0 To cs.length - 1
                        ro(cs(i)) = ws.Cells(n,i+1).Text
                    Next
                Next
            Next




        try
            For Each file As String In dlg.FileNames
                Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(file)
                Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(2)   'sheet2标签
                Dim Rg As MSExcel.Range = Ws.UsedRange
                Dim cs() As String = { "123","321" }
                Dim ary = rg.value                                                             ‘单表效率高,但是不能多EXCEL一次导入,第二表就失效了 
                For n As Integer = 2 To rg.Rows.Count
                    Dim ro As Row = Tables("日报").AddNew
                    For i As Integer = 0 To Tables("日报").Cols.Count - 1
                        ro(cs(i))= ary(n,i+1)
                    Next
                Next
            Next
[此贴子已经被作者于2016/9/13 20:58:29编辑过]

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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
  发帖心情 Post By:2016/9/13 20:49:00 [显示全部帖子]

DataTables("表1").DataRows.Clear
Dim dlg As New OpenFileDialog
dlg.MultiSelect = True  ‘可多选excel
dlg.Filter= "所有文件|*.*|Excel2003文件|*.xls|Excel2007文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你选择的是:" & dlg.FileName,"提示")   ‘上面多选了excel,如:选定 1.XLS、2.XLS、3.XLS三个表,此处只显示“C:\SCAN\1.XLS提示”!2.xls、3xls没提示,改成  dlg.FileNames 说没定义计算。
    If MessageBox.Show("是否合并?","请确 认!",MessageBoxButtons.OKCancel,MessageBoxIcon.Question) = DialogResult.OK Then
        DataTables("表1").StopRedraw

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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
  发帖心情 Post By:2016/9/13 22:24:00 [显示全部帖子]

3Q 3Q 高效高效。


是不架构一样的 2003  2007格式excel 也不能一起倒入?

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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
  发帖心情 Post By:2016/9/13 22:37:00 [显示全部帖子]

老大此处最后问题,第三方软件导出未设置excel格式(长日期时间),导致导出excel是“数字.数字”,本来应该 yyyy/mm/dd  HH:MM:SS,倒入错误。

这之间有什么把控的么?目前为了倒入顺利foxtable设置  “文本255”,貌似比较困难? 
那我是倒入文本格式后,在foxtable里面单列一下格式化单元格?请大版指点。

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


加好友 发短信
等级:婴狐 帖子:13 积分:165 威望:0 精华:0 注册:2016/5/26 10:57:00
  发帖心情 Post By:2016/9/13 22:38:00 [显示全部帖子]

第一个正常,第二个及后面是空白

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