以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]多选excel一次导入foxtable问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90446)

--  作者:foxtable_boy
--  发布时间:2016/9/13 8:25:00
--  [求助]多选excel一次导入foxtable问题
如何“多选 架构一样 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编辑过]

--  作者:有点蓝
--  发布时间:2016/9/13 8:53:00
--  
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
                    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
            MessageBox.Show("导入成功!","恭喜!")
        catch ex As exception
            msgbox(ex.message)
            MessageBox.Show("导入失败!","遗憾!")
        finally
            DataTables("表1").ResumeRedraw
            app.quit
        End try


--  作者:foxtable_boy
--  发布时间:2016/9/13 9:10:00
--  
老大,我这“一开始,打开选择目录,怎么多选EXCEL”?现在只能选一个EXCEL文件
--  作者:有点蓝
--  发布时间:2016/9/13 9:26:00
--  
鼠标拖拉框选,或者按住ctrl键
--  作者:foxtable_boy
--  发布时间: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
................................................................
        




--  作者:有点蓝
--  发布时间:2016/9/13 10:00:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

--  作者:foxtable_boy
--  发布时间: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编辑过]

--  作者:有点蓝
--  发布时间:2016/9/13 11:07:00
--  
没看明白,导入多个Execl看2楼
--  作者:foxtable_boy
--  发布时间: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里设置单元格 时间+长日期时间!导入失败
--  作者:有点蓝
--  发布时间:2016/9/13 14:19:00
--  
上例子说明