以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  批量合并问题!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=151034)

--  作者:fangdejin
--  发布时间:2020/6/13 12:00:00
--  批量合并问题!
有很多文件需要批量合并,窗口表中某列的值等于文件名,批量导入时如何做到导入的文件与某列值对应,请老师指导。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:艾金玉.xls


--  作者:fangdejin
--  发布时间:2020/6/13 12:01:00
--  
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(".xls") Then
            Dim Book As New xls.Book(fl)
            Dim wjm As String = FileSys.GetName(fl)
            Dim s As String
            s=wjm.Replace(".xls","")
            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 = "测试表1" \'指定接收数据的表
                mg.Merge() \'开始合并
                Vars("name")=s
                MessageBox.show(dlg.FileName)
            Next
        End If
    Next
    DataTables("测试表1").DeleteFor("全部费用明细 is null")
    systemready = True
End If
Dim btn2 As WinForm.Button = e.Form.Controls("Button2")
btn2.PerformClick

--  作者:fangdejin
--  发布时间:2020/6/13 12:01:00
--  
我用的是这个合并命令
--  作者:有点蓝
--  发布时间:2020/6/13 14:02:00
--  
首先。表格不规范:http://www.foxtable.com/webhelp/topics/2280.htm,如果一定要按住这种格式导,需要这样:http://www.foxtable.com/webhelp/topics/2334.htm

其次,"导入的文件与某列值对应"指什么?文件的名称等于某列值?那就这样:

dim r as row = tables("A").current
Dim Book As New XLS.Book(r("某列"))
Dim 
Sheet As XLS.Sheet = Book.Sheets(0)

--  作者:fangdejin
--  发布时间:2020/6/13 14:33:00
--  
说反了,是某列值等于文件的名称。
--  作者:有点蓝
--  发布时间:2020/6/13 14:41:00
--  
使用这种方式导数据http://www.foxtable.com/webhelp/topics/2334.htm

把文件名填入需要的单元格