以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  【求助】excel表  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=94144)

--  作者:好吧
--  发布时间:2016/12/16 17:08:00
--  【求助】excel表
老师,请问我要循环打开的excel表中的多张sheet,红色部分的代码可以这样写??为什么我这样写,总会循环多出一张奇怪的表呢??
Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
dlg.MultiSelect = True \'允许选择多个文件
If dlg.ShowDialog = DialogResult.OK Then
    For Each file As String In dlg.filenames
        Dim dt As DataTable = DataTables("临时表")
        Dim dt1 As DataTable = DataTables("销售订单管理")
        Dim book As new XLS.Book(file)
        For j As Integer = 0 To  book.sheets.count - 1


--  作者:有点色
--  发布时间:2016/12/16 17:13:00
--  

我测试,没问题。

 

是不是你excel文件就是多了一个隐藏的表?


--  作者:好吧
--  发布时间:2016/12/16 17:21:00
--  
没有啊,隐藏的我都删了。
 我这样改 For j As Integer = 0 To  book.sheets.count - 5
结果也是一样,而且循环的sheet也不会少

--  作者:有点色
--  发布时间:2016/12/16 17:22:00
--  
不可能,做个例子发上来。
--  作者:好吧
--  发布时间:2016/12/16 18:41:00
--  
谢谢啦!!

[此贴子已经被作者于2016/12/19 20:49:41编辑过]

--  作者:有点色
--  发布时间:2016/12/16 19:40:00
--  

我测试,没问题

 

Dim dlg As new OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx"
dlg.MultiSelect = True \'允许选择多个文件
If dlg.ShowDialog = DialogResult.OK Then
    For Each file As String In dlg.filenames
        Dim book As new XLS.Book(file)
        For j As Integer = 0 To  book.sheets.count - 1
            output.show(book.sheets(j).name)
        Next
    Next
End If


--  作者:好吧
--  发布时间:2016/12/16 19:48:00
--  
老师怎么我在命令窗口执行输出这么多张sheet啊??

sheet1
Sheet2
Sheet14
Sheet15
Sheet16
Sheet17
Sheet18
Sheet19
Sheet20
Sheet21
Sheet22
Sheet23
Sheet24
[此贴子已经被作者于2016/12/19 20:51:05编辑过]

--  作者:好吧
--  发布时间:2016/12/16 21:25:00
--  
老师,您用5楼这张Excel表试没问题??会不会跟office版本有关系呢??
--  作者:狐狸爸爸
--  发布时间:2016/12/17 8:47:00
--  
我测试也一样,要不你新建一个文件,将在这些表拉到新的文件看看。
--  作者:好吧
--  发布时间:2016/12/17 9:24:00
--  
我改成:For j As Integer = 0 To 10 就可以了,用For j As Integer = 0 To  book.sheets.count - 1就是不知道其他的sheet是怎么多出来的,麻烦老师帮忙找找原因??