Foxtable(狐表)用户栏目专家坐堂 → 导出Excel问题


  共有2143人关注过本帖树形打印复制链接

主题:导出Excel问题

帅哥哟,离线,有人找我吗?
gudao123456
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
导出Excel问题  发帖心情 Post By:2020/9/27 22:10:00 [只看该作者]

自定义了一个导出Excel窗口,但老默认为*.xls 导致出现“超过最大的行数65,536”的错误提示,代码如下:

.........

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你要保存为:" & dlg.FileName,"提示") '提示用户选择的文件
Else
    MessageBox.Show("你没有输入导出文件名,如需导出请再次进入","提示")
    Forms("导出学生信息Excel").close()
    Return
End If


就是把 dlg.Filter= "Excel文件|*.xls"  改为:dlg.Filter= "Excel文件|*.xlsx" 也一样提示错误  为何?谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105953 积分:538840 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/27 22:39:00 [只看该作者]

xls 最多支持65,536行,xlsx肯定可以。怎么导的,没看到导出的代码

 回到顶部
帅哥哟,离线,有人找我吗?
gudao123456
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By:2020/9/27 22:56:00 [只看该作者]

行数少时可以,行数多了就不行了。
代码如下:
Dim tb As Table=CurrentTable

Dim ckl As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim nms1 As New List(of String)
Dim nms As New List(of String)
For i As Integer = 0 To ckl.Items.count - 1 '获取已经勾选的列
    If ckl.GetItemChecked(i) Then
        For Each dc As Col In tb.Cols
            If dc.caption=ckl.Items(i)  Then
                nms.Add(dc.name)
                nms1.Add(dc.caption)
                
                Exit For
            End If
        Next
    End If
Next
'

'End If
'Next
If nms.Count = 0 Then
    MessageBox.Show("至少要选择一列","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
'生成Excel表
Dim dt As Table =tb
Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For i As Integer = 0 To nms1.count -1
    Sheet(0, i).Value = nms1(i)
Next
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For i As Integer = 0 To nms.count -1
        Sheet(r + 1, i).Value = dt.rows(r)(nms(i))
    Next
Next
'保存并打开excel文件
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你要保存为:" & dlg.FileName,"提示") '提示用户选择的文件
Else
    ' MessageBox.Show("你没有输入导出文件名,如需导出请再次进入","提示")
    Forms("导出学生信息Excel").close()
    Return
End If
Book.Save(dlg.FileName)
Dim Proc As New Process
Proc.File =dlg.FileName
Proc.Start()

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105953 积分:538840 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/27 23:09:00 [只看该作者]

先保存,在打开导入:

'生成Excel表
Dim dt As Table =tb
'保存并打开excel文件
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    MessageBox.Show("你要保存为:" & dlg.FileName,"提示") '提示用户选择的文件
Dim Book As New XLS.Book
Book.Save(dlg.FileName)
Book = New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)
For i As Integer = 0 To nms1.count -1
    Sheet(0, i).Value = nms1(i)
Next
For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For i As Integer = 0 To nms.count -1
        Sheet(r + 1, i).Value = dt.rows(r)(nms(i))
    Next
Next
Book.Save(dlg.FileName)
Dim Proc As New Process
Proc.File =dlg.FileName
Proc.Start()
Else
    ' MessageBox.Show("你没有输入导出文件名,如需导出请再次进入","提示")
    Forms("导出学生信息Excel").close()
    Return
End If


 回到顶部
帅哥哟,离线,有人找我吗?
gudao123456
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By:2020/9/27 23:15:00 [只看该作者]

还是不行


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105953 积分:538840 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/28 8:44:00 [只看该作者]

我测试没有任何问题。代码没有抄对吧?或者试试安装下面的数据访问组件:

http://www.foxtable.com/download/AccessDatabaseEngine.exe


或者试试使用vba:http://www.foxtable.com/webhelp/topics/2121.htm
[此贴子已经被作者于2020/9/28 8:47:19编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
gudao123456
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By:2020/9/29 0:05:00 [只看该作者]

OK了 谢谢!

 回到顶部