开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

楼主: 墨影0620
收起左侧

[易语言模块源码] 超级列表框导出到EXCEL文件——2021.03.15修正版

[复制链接]
结帖率:94% (133/141)
 楼主| 发表于 2021-3-27 21:33:16 | 显示全部楼层   山东省济南市
xiaohuochai 发表于 2021-3-25 16:11
有个小BUG,就是导出列数据大于16位数字的话直接是科学计数法,没法还原,,建议加入某一列数据类型自定义,,或 ...

有需求源码自己改去~~~
源码都给你了,确定要做伸手党么?
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2021-3-25 16:11:55 | 显示全部楼层   河南省驻马店市
有个小BUG,就是导出列数据大于16位数字的话直接是科学计数法,没法还原,,建议加入某一列数据类型自定义,,或者直接设置成文本型最好
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
发表于 2021-3-21 19:34:32 | 显示全部楼层   福建省泉州市
不错呢测试了 确实好用呢
回复 支持 反对

使用道具 举报

发表于 2021-3-21 19:04:13 高大上手机用户 | 显示全部楼层   江苏省南京市
支持开源!谢谢分享!
回复 支持 反对

使用道具 举报

结帖率:95% (41/43)

签到天数: 17 天

发表于 2021-3-18 13:46:46 | 显示全部楼层   湖北省荆门市
  
子程序名返回值类型公开备 注
XLSX初始化_整数型 调用libxl插件前必须初始化,返回句柄
变量名类 型静态数组备 注
句柄整数型 
句柄 = xlCreateXMLBookCA ()  ' 初始化
xlBookSetKeyA (句柄, 取文本_指针 (“heiye2018”), 取文本_指针 (“windows-2429200204cde60c6ab16a6ea1q9wec2”))  ' 注册
返回 (句柄)
  
子程序名返回值类型公开备 注
Excel导出_超级列表框逻辑型 调用libxl插件
参数名类 型参考可空数组备 注
超级列表框_超级列表框超级列表框
进度条_进度条
表头文本型{“列1”,“列2”}
工作表名文本型
列宽整数型例如:{19,19},默认自动调整
路径文本型Excel保存路径\理论支持( 2007、2010、2016)格式文件
变量名类 型静态数组备 注
句柄整数型 
总数长整数型 
a整数型 
b整数型 
c整数型 
d整数型 
e文本型 
f整数型 
终止列整数型 
qq整数型 
总数 = 超级列表框_.取表项数 ()
句柄 = XLSX初始化_ ()
c = xlBookInsertSheetA (句柄, xlBookSheetCountA (句柄), 取文本_指针 (工作表名), 0)
a = xlBookAddFormatA (句柄, 0)
xlFormatSetBorderA (a, 1)
计次循环首 (取数组成员数 (表头), b)
xlSheetWriteStrA (c, 0, b - 1, 取文本_指针 (表头 [b]), a)
计次循环尾 ()
进度条_.位置 = 0
进度条_.最大位置 = 总数
如果真 (总数 ≥ 32767)  ' 解决超出这个数就无法显示进度的问题。
进度条_.最大位置 = 总数 ÷ 100

终止列 = 取数组成员数 (表头)
如果真 (是否为空 (列宽))
计次循环首 (终止列, )
加入成员 (列宽, -1)
计次循环尾 ()
计次循环首 (总数, d)
计次循环首 (终止列, b)
e = 超级列表框_.取标题 (d - 1, b - 1)
xlSheetWriteStrA (c, d, b - 1, 取文本_指针 (e), a)
计次循环尾 ()
判断 (总数 ≥ 32767)
进度条_.位置 = d ÷ 100
进度条_.位置 = d
系统_处理事件1 ()
计次循环尾 ()
xlSheetAddIgnoredErrorA (c, 0, 0, d, b, 255)  ' 添加表格忽略错误
计次循环首 (取数组成员数 (列宽), qq)
xlSheetSetColA (c, qq - 1, qq - 1, 列宽 [qq], 0, 0)  ' 调整列宽
计次循环尾 ()
f = xlBookSaveA (句柄, 取文本_指针 (路径))
xlBookReleaseA (句柄)
返回 (f = 1)


i支持库列表   支持库注释   
iext扩展界面支持库一

  
子程序名返回值类型公开备 注
Excel导入_超级列表框逻辑型 调用libxl插件
参数名类 型参考可空数组备 注
超级列表框_超级列表框组件
进度条_进度条组件
Excel文件文本型理论支持( 2007、2010、2016)格式文件
是否包含表头逻辑型默认不包含表头
变量名类 型静态数组备 注
句柄整数型 
表_句柄整数型 
列数整数型 
行数整数型 
读取表格整数型 
整数型 
整数型 
临时内容文本型 
行内容文本型 
行__整数型 
句柄 = XLSX初始化_ ()
如果真 (取反 (xlBookLoadA (句柄, 取文本_指针 (Excel文件)) = 1))  ' 打开工作簿
xlBookReleaseA (句柄)  ' 释放
返回 ()
表_句柄 = xlBookGetSheetA (句柄, 读取表格)  ' 取表格内容
行数 = xlSheetLastRowA (表_句柄)  ' 取得行数
列数 = xlSheetLastColA (表_句柄)  ' 取得列数
超级列表框_.全部删除 ()
如果真 (是否为空 (是否包含表头))
是否包含表头 = 假
如果真 (是否包含表头 = )
行数 = 行数 - 1

进度条_.位置 = 0
进度条_.最大位置 = 行数
如果真 (行数 - 1 ≥ 32767)  ' 解决超出这个数就无法显示进度的问题。
进度条_.最大位置 = 行数 ÷ 100

计次循环首 (行数, 行)  ' 读工作表数据
列 = 0
判断 (行数 ≥ 32767)
进度条_.位置 = 行 ÷ 100
进度条_.位置 = 行
超级列表框_.插入表项 (, , , , , )
计次循环首 (列数, 列)
判断 (是否包含表头 = )
行__ = 行
行__ = 行 - 1
临时内容 = 指针到文本 (xlSheetReadStrA (表_句柄, 行__, 列 - 1, 0))  ' 读单元格文本
超级列表框_.置标题 (行 - 1, 列 - 1, 临时内容)
计次循环尾 ()
系统_处理事件1 ()
计次循环尾 ()
xlBookReleaseA (句柄)  ' 释放
返回 ()


i支持库列表   支持库注释   
iext扩展界面支持库一




兄弟,看我的这个怎么样?
回复 支持 反对

使用道具 举报

结帖率:95% (41/43)

签到天数: 17 天

发表于 2021-3-18 13:41:00 | 显示全部楼层   湖北省荆门市
感谢分享好东西。
回复 支持 反对

使用道具 举报

结帖率:75% (6/8)

签到天数: 20 天

发表于 2021-3-17 16:28:18 | 显示全部楼层   山东省烟台市
建议dll文件直接放文件夹中,让模块体积小一些
回复 支持 反对

使用道具 举报

结帖率:94% (133/141)
 楼主| 发表于 2021-3-16 22:39:24 | 显示全部楼层   山东省济南市
新版本:https://the-ink-man.lanzous.com/iFemgn0cfqb
更新时间:2021年3月16日 22:37:29
更新内容:
1、修复了某表项的某列出现空导致后面的内容错位的bug
2、新增了一个类,方便在保存处excel之前添加额外的内容【譬如末尾加一个合计金额】
回复 支持 反对

使用道具 举报

结帖率:94% (133/141)
 楼主| 发表于 2021-3-16 22:35:45 | 显示全部楼层   山东省济南市
ltais 发表于 2021-3-16 21:18
能不能把dll文件自己手动释放,直接打包在模块里,会让编译的体积大很多

模块不是我原创的,这个模块里我没找到释放dll的代码。我怀疑是《LibXL3.9.0》模块里的代码,你可以自己去论坛找一找这个模块,我记得是开源的。
不要做伸手党谢谢!
回复 支持 反对

使用道具 举报

结帖率:100% (38/38)

签到天数: 23 天

发表于 2021-3-16 21:18:33 | 显示全部楼层   北京市北京市
能不能把dll文件自己手动释放,直接打包在模块里,会让编译的体积大很多
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表