精易论坛

标题: libxl插件快速从[数据库][超级列表框][高级表格]导入导出Excel [打印本页]

作者: 李泽勇2    时间: 2020-3-22 17:54
标题: libxl插件快速从[数据库][超级列表框][高级表格]导入导出Excel
本帖最后由 李泽勇2 于 2020-3-22 19:15 编辑

使用libxl.dll插件可快速导入导出Excel文件,比系统自带的组件导出快N多倍,支持2007、2010、2016等文件。完全脱离office环境,独立运行。
这个插件是论坛里网友分享的,我就拿来写了几个例子,并做成了模块,源码一同分享给大家。这次新增了高级表格的导入和导出,并且我写了一个演示例子喜欢折腾的朋友拿去改进下吧,基本用还是没问题的。
增加了 [指定字段] 的导出,这样更灵活了。





附件在这里:




补充内容 (2020-4-11 20:37):
发现无法识别的加固段,需要安装最新的 易语言助手

补充内容 (2020-6-16 08:49):
.版本 2
.支持库 eGrid

.子程序 Excel导出_高级表格, 逻辑型, 公开
.参数 高级表格_, 高级表格, 可空, 高级表格
.参数 进度条_, 进度条
.参数 表头, 文本型, 数组, {“列1”,“列2”}
.参数 工作表名, 文本型
.参数 列宽, 整数型, 可空 数组, {19,19}默认全部19
.参数 路径, 文本型, , Excel保存路径\理论支持( 2007、2010、2016)格式文件
.局部变量 句柄, 整数型
.局部变量 总数, 长整数型
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 c, 整数型
.局部变量 d, 整数型
.局部变量 e, 文本型
.局部变量 f, 整数型
.局部变量 终止列, 整数型
.局部变量 qq, 整数型

总数 = 高级表格_.行数 - 1
句柄 = 初始化_ ()
c = xlBookInsertSheetA (句柄, xlBookSheetCountA (句柄), 取文本指针 (工作表名), 0)
a = xlBookAddFormatA (句柄, 0)
xlFormatSetBorderA (a, 1)
.计次循环首 (取数组成员数 (表头), b)
    xlSheetWriteStrA (c, 0, b - 1, 取文本指针 (表头 ), a)
.计次循环尾 ()
进度条_.位置 = 0
进度条_.最大位置 = 总数
终止列 = 取数组成员数 (表头)
.如果真 (是否为空 (列宽))
    .计次循环首 (终止列, )
        加入成员 (列宽, 19)
    .计次循环尾 ()
.如果真结束
.计次循环首 (总数, d)
    .计次循环首 (终止列, b)
        e = 高级表格_.取shuj (d, b - 1)
        xlSheetWriteStrA (c, d, b - 1, 取文本指针 (e), a)
    .计次循环尾 ()
    进度条_.位置 = d
.计次循环尾 ()
xlSheetAddIgnoredErrorA (c, 0, 0, d, b, 255)  ' 添加表格忽略错误
.计次循环首 (取数组成员数 (列宽), qq)
    xlSheetSetColA (c, qq - 1, qq - 1, 列宽 [qq], 0, 0)  ' 调整列宽
.计次循环尾 ()
f = xlBookSaveA (句柄, 取文本指针 (路径))
xlBookReleaseA (句柄)
返回 (f = 1)


补充内容 (2020-6-16 08:50):
修复从高级表格里导出表头问题。

补充内容 (2020-8-6 15:10):
不想默认19列宽的同志可以将:加入成员 (列宽, 19) 修改成 加入成员 (列宽, -1) 可以实现自动调整列宽

补充内容 (2020-8-12 08:33):
超过进度条的最大位置32767后只会显示进度条的最大数,超过就不准的问题
    只需要把进度条的最大位置÷ 100和进度条的位置÷ 100就可以解决。

补充内容 (2020-10-12 14:01):
.版本 2
.支持库 eGrid

.子程序 Excel导出_高级表格, 逻辑型, 公开
.参数 高级表格_, 高级表格, 可空, 高级表格
.参数 进度条_, 进度条
.参数 表头, 文本型, 数组, {“列1”,“列2”}
.参数 工作表名, 文本型
.参数 列宽, 整数型, 可空 数组, {19,19}默认全部19
.参数 路径, 文本型, , Excel保存路径\理论支持( 2007、2010、2016)格式文件
.局部变量 句柄, 整数型
.局部变量 总数, 长整数型
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 c, 整数型
.局部变量 d, 整数型
.局部变量 e, 文本型
.局部变量 f, 整数型
.局部变量 终止列, 整数型
.局部变量 qq, 整数型

总数 = 高级表格_.行数 - 1
句柄 = 初始化_ ()
c = xlBookInsertSheetA (句柄, xlBookSheetCountA (句柄), 取文本指针 (工作表名), 0)
a = xlBookAddFormatA (句柄, 0)
xlFormatSetBorderA (a, 1)
.计次循环首 (取数组成员数 (表头), b)
    xlSheetWriteStrA (c, 0, b - 1, 取文本指针 (表头 ), a)
.计次循环尾 ()
进度条_.位置 = 0
进度条_.最大位置 = 总数
终止列 = 取数组成员数 (表头)
.如果真 (是否为空 (列宽))
    .计次循环首 (终止列, )
        加入成员 (列宽, -1)
    .计次循环尾 ()
.如果真结束
.计次循环首 (总数, d)
    .计次循环首 (终止列, b)
        e = 高级表格_.取数据 (d, b - 1)
        xlSheetWriteStrA (c, d, b - 1, 取文本指针 (e), a)
    .计次循环尾 ()
    进度条_.位置 = d
.计次循环尾 ()
xlSheetAddIgnoredErrorA (c, 0, 0, d, b, 255)  ' 添加表格忽略错误
.计次循环首 (取数组成员数 (列宽), qq)
    xlSheetSetColA (c, qq - 1, qq - 1, 列宽 [qq], 0, 0)  ' 调整列宽
.计次循环尾 ()
f = xlBookSaveA (句柄, 取文本指针 (路径))
xlBookReleaseA (句柄)
返回 (f = 1)

作者: jjkwong    时间: 2020-3-22 18:04
沙发的后排

作者: goodway888    时间: 2020-3-22 18:08
学习中。实用好的帖子。棒

作者: goodway888    时间: 2020-3-22 18:09
棒棒棒呀棒

作者: 数据压缩    时间: 2020-3-22 18:11
感谢分享                           
作者: 网络注册会员    时间: 2020-3-22 18:12
学习一下呢
作者: xinling99    时间: 2020-3-22 18:18

学习中。实用好的帖子。棒
作者: ccok    时间: 2020-3-22 18:20
#在这里快速回复#,如果您要查看本帖隐藏内容请回复
作者: 迷茫゛    时间: 2020-3-22 18:22
看一下了                        

作者: 中国涛涛,中国    时间: 2020-3-22 18:26
高级技术!!!!!!!

作者: 夜华    时间: 2020-3-22 18:35
好东西 不带dll
就好了
作者: huaidan2015    时间: 2020-3-22 18:36
好东西 不带dll
就好了
作者: yxl2008    时间: 2020-3-22 18:53
感谢分享,下载学习!!!
作者: 阿仁同学    时间: 2020-3-22 19:02
666              
作者: 不苦小和尚    时间: 2020-3-22 19:04
谢谢分享,学习学习

作者: 美夜赤月    时间: 2020-3-22 19:05
看看高级技术。
作者: kike    时间: 2020-3-22 20:11
精易有你,更精彩!
作者: winxsj    时间: 2020-3-22 20:37
看起来很流弊的样子
作者: 星鱼    时间: 2020-3-22 20:52
试试这一个。

作者: 左宁    时间: 2020-3-22 21:02
好东西,试试看
作者: 3512747    时间: 2020-3-22 21:02
下载来看看。正好需要。
作者: 轻风影    时间: 2020-3-22 21:04
这个可以有
作者: fjcq    时间: 2020-3-22 21:05
看下效率如何
作者: 小汉子    时间: 2020-3-22 21:10
谢谢分享,下载看看

作者: 小志威武    时间: 2020-3-22 21:17
#在这里快速回复#支持开源,
作者: 天雨时晴    时间: 2020-3-22 21:36
libxl.dll是要zc的吧
作者: 想学易语言    时间: 2020-3-22 21:38
太感谢你了。我想学。
作者: fhqbbfcu    时间: 2020-3-22 21:45
下个来看看。

作者: sinewtec    时间: 2020-3-22 22:03
持开源~!感谢分享
作者: FUYUEPC    时间: 2020-3-22 22:05
非常不错,下载学学看看
作者: luckfish45    时间: 2020-3-22 22:11
看看速度咋样
作者: 北极星光    时间: 2020-3-22 22:52
谢谢分享,下载看看
作者: 中国码农    时间: 2020-3-22 23:24
学习,学习

作者: 小汉子    时间: 2020-3-22 23:44
列表框内容可以写入到目录下已存在的工作簿中的指定工作表中去吗
作者: qgchqgch89    时间: 2020-3-23 00:03
来看看这个好不好用
作者: bilal138    时间: 2020-3-23 00:11
asfas fa这个必须测试看看

作者: zidiao500    时间: 2020-3-23 00:47
完全脱离的这个必须看看

作者: 85383411    时间: 2020-3-23 01:03
111111111111

作者: kentfung    时间: 2020-3-23 01:25
谢谢分享,速度看上去不错哦
作者: 枕风宿雪多年    时间: 2020-3-23 02:09
学习,学习
作者: anner    时间: 2020-3-23 04:44
附件在这里
作者: 信念    时间: 2020-3-23 06:45
666666666666666
作者: jspengcf    时间: 2020-3-23 08:36
哇哦  这个我要   困扰好久了
作者: pyms    时间: 2020-3-23 08:52
这个很给力
作者: woshipqj    时间: 2020-3-23 08:54
感谢分享,很给力!~
作者: 商务    时间: 2020-3-23 09:20
感谢分享!试试
作者: honfongu    时间: 2020-3-23 09:25
下载测试下,谢谢分享
作者: 相随    时间: 2020-3-23 09:26
了解一下,谢谢楼主

作者: winkuyu    时间: 2020-3-23 12:10
附件在这里
作者: 午后柔光    时间: 2020-3-23 12:34
感谢分享,这个太给力了
作者: tplong    时间: 2020-3-23 13:02
大神啊,正好 找这个 太感谢了,
作者: arlonshen    时间: 2020-3-23 13:11
做个记号!!!
作者: orjg    时间: 2020-3-23 13:19
这个是比之前那个完善了吧,应该再增加导出Excel文件是否是新建,还是导入已存在的Excel文件中
作者: wjswzj0    时间: 2020-3-23 14:00
感谢分享,很给力!~
作者: 847478253    时间: 2020-3-23 15:10
咔咔咔咔咔咔扩扩扩扩扩扩扩扩扩扩咔咔咔咔咔咔扩扩扩扩扩扩扩扩扩扩看看

作者: 餐桌上的G    时间: 2020-3-23 15:31
bxl插件快速从[数据库][超级列表框][高级表格]导入导

作者: yuanaioll    时间: 2020-3-23 16:34
00000000000000

作者: 1126545441    时间: 2020-3-23 17:54
11111111111111

作者: hellohexiang    时间: 2020-3-23 20:17
感谢分享,很给力
作者: wuqingg    时间: 2020-3-23 20:38
感谢分享。。。。。。。
作者: 247253609a    时间: 2020-3-23 21:05
6666666666先点赞再说

作者: dawang2014    时间: 2020-3-23 21:07
666666,谢谢大佬。

作者: 深圳梦    时间: 2020-3-23 21:52
感谢分享,很给力!~
作者: flfkhn2    时间: 2020-3-23 22:23
要查看本帖隐藏内容

作者: xu1086    时间: 2020-3-23 22:40
支持!!!!!!!!!!!!

作者: ferrisy    时间: 2020-3-23 22:44
正需要,谢谢了
作者: 天空飞翔    时间: 2020-3-23 23:33
感谢分享,很给力!~
作者: 寂寞流狼    时间: 2020-3-24 07:50
好东西,下载看看。

作者: zgxujing0565    时间: 2020-3-24 08:38
66666666666666666

作者: glionying    时间: 2020-3-24 09:03
66666666666666666
作者: shahewang    时间: 2020-3-24 09:09
感谢分享!!

作者: shinid8210    时间: 2020-3-24 09:22
支持开源~!感谢分享
作者: 落月无痕    时间: 2020-3-24 09:23
大神666666
作者: kantal    时间: 2020-3-24 10:48
谢谢分享~~来支持了
作者: flyhsx    时间: 2020-3-24 11:08
不错   支持一下
作者: panda92    时间: 2020-3-24 11:33
不错   支持一下
作者: 杰西卡技术传媒    时间: 2020-3-24 12:27
感谢分享,很给力!~
作者: 李泽勇2    时间: 2020-3-24 12:32
flyhsx 发表于 2020-3-24 11:08
不错   支持一下

现目前大多数的数据库命令都是通用的。
作者: xo37    时间: 2020-3-24 13:46
谢谢分享,一直没下决心转过来呢……
作者: bye亲    时间: 2020-3-24 15:46
谢谢分享,一直没下决心转过来呢……
作者: 码畜    时间: 2020-3-24 15:59
学习一下!!!!

作者: xiaoniu1230    时间: 2020-3-24 16:03
感谢分享,支持开源

作者: aneeo    时间: 2020-3-24 16:07
测试一下~看看

作者: 码畜    时间: 2020-3-24 16:28
超级列表框导出无效
作者: tyler998    时间: 2020-3-24 17:20
感谢分享,测试一下速度

作者: ujff77    时间: 2020-3-24 17:30
感谢分享,很给力!~
作者: leafsmaple    时间: 2020-3-24 18:28
感觉这是一篇神帖,围观...

作者: hdldjese    时间: 2020-3-24 19:11
正找这个东西,哈哈
作者: x465211734    时间: 2020-3-24 21:04
这么牛???6的一批啊  ,大神

作者: 李哈哈    时间: 2020-3-24 23:34
可以 下载看看哈
作者: 四叶草接单    时间: 2020-3-25 00:54
谢发布原创作品,一定好好学习,天天向上
作者: dashang    时间: 2020-3-25 01:43
感谢分享,很给力!~
作者: 13266750    时间: 2020-3-25 02:08
wen ,kai ua

作者: 李泽勇2    时间: 2020-3-25 09:31
夏最微凉 发表于 2020-3-24 16:28
超级列表框导出无效

我测试过超级列表框导出是没有任何问题的。请问你是怎么写的代码,把代码贴出来我看看那里错误了。
作者: 韦贝贝    时间: 2020-3-25 09:32
libxl插件快速从[数据库][超级列表框][高级表格]导入导出Excel
作者: 就是那个秋    时间: 2020-3-25 10:10
感谢分享,很给力!~
作者: dongdiyu789    时间: 2020-3-25 11:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: world    时间: 2020-3-25 11:18
很好的工具
作者: 布鲁惠斯    时间: 2020-3-25 11:40
        感谢分享,很给力!~
作者: ffpiw2    时间: 2020-3-25 12:00
libxl插件快速从[数据库][超级列表框][高级表格]导入导出Excel





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4