以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  合并表格的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=34724)

--  作者:zaianda
--  发布时间:2013/6/14 9:40:00
--  合并表格的问题

 我使用以下命令合并:

For Each fl As String In FileSys.GetFiles("c:\\tt")
    Dim mg As New Merger
    mg.SourcePath = fl
    mg.Format = "excel" \'指定格式
    mg.SourceTableName = "表格1$" \'指定要合并的表
    mg.DataTableName = "表A" \'指定接收数据的表
    mg.Merge() \'开始合并
Next

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130614093745.png
图片点击可在新窗口打开查看
我想让合并好的数据在同一行该怎么做?


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130614094122.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130614094135.png
图片点击可在新窗口打开查看
这是要合并的两个数据表

[此贴子已经被作者于2013-6-14 9:42:44编辑过]

--  作者:Bin
--  发布时间:2013/6/14 9:40:00
--  
什么都没?
--  作者:Bin
--  发布时间:2013/6/14 10:02:00
--  
你EXCEL表 和例子做一个上来  我帮你完善代码!
--  作者:zaianda
--  发布时间:2013/6/14 10:15:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多表导入.rar

我直接在命令窗口执行代码的,就是1L那一段:

For Each fl As String In FileSys.GetFiles("c:\\tt")
    Dim mg As New Merger
    mg.SourcePath = fl
    mg.Format = "excel" \'指定格式
    mg.SourceTableName = "表格1$" \'指定要合并的表
    mg.DataTableName = "表A" \'指定接收数据的表
    mg.Merge() \'开始合并
Next

 

两个excel放在C:\\tt 下面


--  作者:XYT
--  发布时间:2013/6/14 10:32:00
--  

有什么问题?没见出什么问题?


--  作者:zaianda
--  发布时间:2013/6/14 10:41:00
--  
就是两个表合并出来的数据不能在同一行。
--  作者:XYT
--  发布时间:2013/6/14 10:47:00
--  
因为你是2个文件啊,你把复制过来合并就是1列
--  作者:zaianda
--  发布时间:2013/6/14 10:50:00
--  
如果有很多EXCEL表格的话,用手动复制合成一张岂不是很麻烦?
--  作者:Bin
--  发布时间:2013/6/14 11:11:00
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多表导入.zip


--  作者:狐狸爸爸
--  发布时间:2013/6/14 11:16:00
--  

呵呵,马后炮我也放一个:

 

Tables("表A").StopRedraw()
DataTables("表A").DataRows.clear
For Each fl As String In FileSys.GetFiles("c:\\tt")
    Dim Book As New XLS.Book(fl)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim r As DataRow
        If DataTables("表A").DataRows.Count >= n Then
            r = DataTables("表A").DataRows(n-1)
        Else
            r = DataTables("表A").AddNew
        End If
        For m As Integer = 0 To sheet.Cols.Count - 1
            r(sheet(0,m).Text) = Sheet(n,m).Value
        Next
    Next
Next
Tables("表A").ResumeRedraw()