以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 索引超出范围。必须为非负值并小于集合大小 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97825) |
-- 作者:刘林 -- 发布时间:2017/3/19 9:40:00 -- 索引超出范围。必须为非负值并小于集合大小 Dim dt As Table = Tables("中考报名_table3") Dim dt1 As Table = Tables("中考报名_table4") Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog dlg.Filter= "Excl|*.xls" \'设置筛选器 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book \'定义一个Excel工作簿 Dim Sheet As XLS.Sheet = Book.Sheets(0) \'引用工作簿的第一个工作表 Dim sheet1 As XLS.Sheet = Book.Sheets(1) For c As Integer = 0 To dt.Cols.Count -1 \'添加列标题 If dt.Cols(c).Visible Then Sheet(0, c).Value = dt.Cols(c).Name End If Next For m As Integer = 1 To dt.Rows.Count -1 For n As Integer = 0 To dt.Cols.count -1 If dt.Cols(n).Visible Then sheet(m,n).value =dt.Rows(m)(dt.Cols(n).name) End If Next Next For c1 As Integer = 0 To dt1.Cols.Count -1 \'添加列标题 If dt1.Cols(c1).Visible Then Sheet1(0, c1).Value = dt1.Cols(c1).Name End If Next For m1 As Integer = 1 To dt1.Rows.Count -1 For n1 As Integer = 0 To dt1.Cols.count -1 If dt1.Cols(n1).Visible Then sheet1(m1,n1).value =dt1.Rows(m1)(dt1.Cols(n1).name) End If Next Next Book.Save(dlg.FileName ) Dim Proc As New Process Proc.File = dlg.filename Proc.Start() End If 老师,请问上面代码想同时将窗口内两个表导出到EXCLsheet(0),sheet(1),提示下面错误 索引超出范围。必须为非负值并小于集合大小。没看懂什么地方错了,请指教,谢谢
|
-- 作者:刘林 -- 发布时间:2017/3/19 21:30:00 -- 请老师帮看下 |
-- 作者:wyz20130512 -- 发布时间:2017/3/19 21:51:00 -- 传实例看看 |
-- 作者:狐狸爸爸 -- 发布时间:2017/3/20 9:17:00 -- 说明excel文件只有一个表甚至没有表,所以Book.Sheets(0)和Book.Sheets(1)才会出错。 |
-- 作者:刘林 -- 发布时间:2017/3/20 13:01:00 -- 请问是不是加增加sheets(1)?如何增加? |
-- 作者:有点色 -- 发布时间:2017/3/20 15:24:00 -- 回复5楼,参考 http://www.foxtable.com/webhelp/scr/1465.htm
|