以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:多个单独EXCEL表怎么合并在一个工作簿中  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91920)

--  作者:李孝春
--  发布时间:2016/10/21 21:45:00
--  求助:多个单独EXCEL表怎么合并在一个工作簿中
怎么实现多个表合成一个工作簿  呢?
假定现在有五个1、2、3、4、5.XLS
怎么将其合并在名为“工作簿.xls”的表中呢?


下面代码:
Dim Book As New XLS.Book() \'定义一个Excel工作簿

For i As Integer = 1 To 3
    Dim Book1 As New XLS.Book("C:\\reports\\1.xls") \'
    Dim Sheet As XLS.Sheet = Book1.Sheets(0)\'引用工作簿的第一个工作表
    book1.Sheets.Removeat(0)
    sheet.name = "表" & i
    book.Sheets.Add(sheet)
Next
book.save("c:\\reports\\工作簿.xls")

结果是将1.XLS写了三遍    有没有办法实现直接将1.2.3.4.5.xls全部写入工作簿.xls呢?
[此贴子已经被作者于2016/10/21 22:03:16编辑过]

--  作者:有点蓝
--  发布时间:2016/10/22 10:25:00
--  

[此贴子已经被作者于2016/10/22 10:25:29编辑过]

--  作者:有点蓝
--  发布时间:2016/10/22 10:39:00
--  
    Dim Book As New XLS.Book() \'定义一个Excel工作簿
    
    For i As Integer = 1 To 3
        Dim Book1 As New XLS.Book("C:\\reports\\" & i &".xls") \'
        Dim Sheet As XLS.Sheet = Book1.Sheets(0)\'引用工作簿的第一个工作表
        book1.Sheets.Removeat(0)
        sheet.name = "表" & i
        book.Sheets.Add(sheet)
    Next
    book.save("c:\\reports\\工作簿.xls")

--  作者:李孝春
--  发布时间:2016/10/23 23:05:00
--  回复:(有点蓝)[align=right][color=#000066][此贴...
提示打开存储文件失败错误?

图片点击可在新窗口打开查看此主题相关图片如下:11111.png
图片点击可在新窗口打开查看
用i来代表动态获取电子表表名么?这个i不一定是数字哦 !实际是文字,比如:收案信息.xls  被告人信息.xls  被害人信息.xls 犯罪前科.xls  提交材料.xls 其他材料.xls

[此贴子已经被作者于2016/10/23 23:08:19编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/10/24 7:45:00
--  
那就根据你的实际情况修改代码,人家给你的是思路。
要更准确的帮助,一开始就应该更准确第描述问题。

到目前为止,你的问题描述还是不准确!
这些文件从何而来?
是自己选择要合并的多个文件? 还是合并某个目录下的所有文件?

如果是前者,你可以自己做个openfiledialog, 选择要合并的文件:

Dim dlg As New OpenFileDialog
dlg.Filter=“excel文件|*.xls”
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
   Dim Book As New XLS.Book() \'定义一个Excel工作簿
    For Each fl As String In dlg.FileNames
        Dim Book1 As New XLS.Book(fl) \'       
        Dim Sheet As XLS.Sheet = Book1.Sheets(0)\'引用工作簿的第一个工作表       
        book1.Sheets.Removeat(0)       
        sheet.name = filesys.getname(fl)
        book.Sheets.Add(sheet)
    Next
    book.save("c:\\reports\\工作簿.xls")
End If

如果是后者:


    Dim Book As New XLS.Book() \'定义一个Excel工作簿
    For each fl as string in filesys.getfiles("目录名")
        Dim Book1 As New XLS.Book(fl) \'
        Dim Sheet As XLS.Sheet = Book1.Sheets(0)\'引用工作簿的第一个工作表
        book1.Sheets.Removeat(0)
        sheet.name = filesys.getname(fl)
        book.Sheets.Add(sheet)
    Next
    book.save("c:\\reports\\工作簿.xls")


你看看,上面的代码,那一项是你不会的,其实这些代码你都会,但你没有主动去思考、去尝试。
[此贴子已经被作者于2016/10/24 7:53:46编辑过]

--  作者:方丈
--  发布时间:2016/10/24 22:40:00
--  
学了一招