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


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

主题:导出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" 也一样提示错误  为何?谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
gudao123456
  2楼 | 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()

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


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

还是不行


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


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

OK了 谢谢!

 回到顶部