以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 数据导出EXCEL (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=188789) |
-- 作者:hopestarxia -- 发布时间:2023/10/19 6:50:00 -- 数据导出EXCEL 老师,请问我窗口中查询表,想导出EXCEL,但是导出时想实现5000行生成一个EXCEL文件,即如果窗口表中如果有3万条数据,点导出则自动拆分成6个EXCEL文件。请问如何实现。 |
-- 作者:有点蓝 -- 发布时间:2023/10/19 8:28:00 -- 对查询表做分页加载,每页5000行:http://www.foxtable.com/webhelp/topics/2269.htm 然后加载一页就导出一页:http://www.foxtable.com/webhelp/topics/1145.htm |
-- 作者:hopestarxia -- 发布时间:2023/10/19 9:09:00 -- 老师,大概明白了点意思又没全明白,我是想窗口中的查询表(有多少条记录每次不一样),查询出来后,点一个导出按钮,就按5000行一个EXCEL文件就直接全导出来了,例16000条就一下导出来4个文件,可以叫001,002,003,004,一下子就全部导出来了, 不要点下一页导出一个,再点下一页再导出一个。操作多次。谢谢老师再给详细的说说这样的做法。
|
-- 作者:有点蓝 -- 发布时间:2023/10/19 9:27:00 -- 先生成第一页,然后通过TotalPages判断总共有几页:http://www.foxtable.com/webhelp/topics/1928.htm,按总页数做个循环逐页导出 With DataTables("订单") 加载第一页 .LoadTop = 5000 .LoadPage = 0 .Load End With 这里是导出数据的代码 for i as integer = 1 to DataTables("订单").TotalPages 从第2页开始遍历 With DataTables("订单") .LoadTop = 5000 .LoadPage = i .Load End With 这里是导出数据的代码 next
|
-- 作者:hopestarxia -- 发布时间:2023/10/20 0:44:00 -- 谢谢老师,前面导出第一页实现了,但是后面的循环没起作用,执行不出来结果。 |
-- 作者:有点蓝 -- 发布时间:2023/10/20 8:32:00 -- 代码? |
-- 作者:hopestarxia -- 发布时间:2023/10/21 8:16:00 -- 老师,代码如下:只导出了第一页的20行,后面的就不导出了。窗口的表是查询表。 With DataTables("CCCC_Table1") .LoadTop = 20 .LoadPage = 0 .Load End With Dim flg As New SaveExcelFlags Tables("CCCC_Table1").SaveExcel("D:\\明细" & format(Date.now,"yyyyMMddHHmmss") & ".xls","xmmb",flg) For i As Integer = 1 To DataTables("CCCC_Table1").TotalPages With DataTables("CCCC_Table1") .LoadTop = 20 .LoadPage = i .Load End With Dim flg2 As New SaveExcelFlags Tables("CCCC_Table1").SaveExcel("D:\\明细" & format(Date.now,"yyyyMMddHHmmss") & ".xls","xmmb",flg2) Next
|
-- 作者:有点蓝 -- 发布时间:2023/10/21 9:06:00 -- 要设置一下LoadOver With DataTables("CCCC_Table1") .LoadTop = 20 .LoadPage = 0 .LoadOver = "某个值不重复的列,比如编号" .Load End With …… For i As Integer = 1 To DataTables("CCCC_Table1").TotalPages With DataTables("CCCC_Table1") .LoadTop = 20 .LoadPage = i .LoadOver = "某个值不重复的列,比如编号" .Load End With |
-- 作者:hopestarxia -- 发布时间:2023/10/21 9:53:00 -- 老师,我这里没有主健,我查询代码里虚拟了一个行的序号作为主健也不可以,.我在 LoadOver = "某个值不重复的列,比如编号" 这里要主表与明细表结合才能组成不重复的值,即A表+B表。我放两个上总报错,提示B表的不存在。请问如何放两个值正确? |
-- 作者:有点蓝 -- 发布时间:2023/10/21 10:16:00 -- 用了什么sql?代码? |