精易论坛

标题: 模块怎么使用(LibXL ) [打印本页]

作者: 星见雅    时间: 2025-1-24 16:39
标题: 模块怎么使用(LibXL )
萌新学习 Excel 导入高级表格、高级表格导出 Excel,搜索帖子看到 LibXL 模块看描述挺好用的,结果只会加载不会使用....

作者: chenboss    时间: 2025-1-24 16:39
星见雅 发表于 2025-1-24 16:50
大佬,模块一起的 DLL 文件也要放到 ecom 目录下吗?

dll跟源码放同目录即可
作者: 奔放的牛    时间: 2025-1-24 16:45
发个图看看啊
作者: chenboss    时间: 2025-1-24 16:47
参考以下
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14725699
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14789267
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14490371
作者: 星见雅    时间: 2025-1-24 16:50
chenboss 发表于 2025-1-24 16:47
参考以下
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14725699
https://125.confly.eu.org/forum.php?mod=v ...

大佬,模块一起的 DLL 文件也要放到 ecom 目录下吗?
作者: 星见雅    时间: 2025-1-24 16:56
奔放的牛 发表于 2025-1-24 16:45
发个图看看啊

这个例子看不太懂,模块是要先声明变量才能使用吗,代码跟包里的excel文件好像也没什么关系。。看不太懂Orz

栗子.7z

1.29 MB, 下载次数: 1


作者: 熬夜    时间: 2025-1-24 16:59
合并类导入 https://125.confly.eu.org/forum.php?mod=viewthread&tid=14789042
自定义导出https://125.confly.eu.org/forum.php?mod=viewthread&tid=14764879
完整https://125.confly.eu.org/forum.php?mod=viewthread&tid=14547748
作者: 星见雅    时间: 2025-1-24 17:20
@chenboss @熬夜 大佬们,该模块导入功能是否会因为 IP-Guard 文件加密导致程序闪退,我下载了链接内的示例导入文件时程序闪退了(调式结束)

补充内容 (2025-1-24 17:21):
.版本 2
.支持库 iext

.程序集 窗口程序集_启动窗口

.子程序 _按钮_录入表格_被单击
.局部变量 局_文件, 文本型
.局部变量 局_libxl, LibXL
.局部变量 局_...
作者: 星见雅    时间: 2025-1-24 17:22
星见雅 发表于 2025-1-24 17:20
@chenboss @熬夜 大佬们,该模块导入功能是否会因为 IP-Guard 文件加密导致程序闪退,我下载了链接内的示例 ...

示例的代码:
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
_按钮_录入表格_被单击  
变量名类 型静态数组备 注
局_文件文本型 
局_libxlLibXL 
局_总行整数型 
局_总列整数型 
局_当前行整数型 
局_索引整数型 
通用对话框.类型 = 0
如果真 (通用对话框.打开 ())
' 判断表格文件并使用对应方法进行对象创建
' 注:对象创建后,如果在线程内需要重新创建,记得先释放。
局_文件 = 通用对话框.文件名
判断 (寻找文本 (局_文件, “*.xlsx”, , ) > -1)
局_libxl.创建XLSX ()
局_libxl.创建XLS ()

' 初始化需要
局_libxl.注册 (“GCCG”, “windows-282123090cc0e6036db16b60a1o3p0h9”)
局_libxl.打开EXCEL (通用对话框.文件名)
局_libxl.取表格句柄 (0)  ' 读取第一个Sheet的内容
局_libxl.表格取使用区域_ (, , 局_总行, 局_总列)
' 为避免出现意外情况,多读一行
局_总行 = 局_总行 + 1
' 载入到超级列表框
计次循环首 (局_总行, 局_当前行)
局_索引 = 超级列表框.插入表项 (, , , , , )
超级列表框.置标题 (局_索引, 0, 局_libxl.表格取单元格内容_ (局_当前行 - 1, 0, ))
超级列表框.置标题 (局_索引, 1, 局_libxl.表格取单元格内容_ (局_当前行 - 1, 1, ))
超级列表框.置标题 (局_索引, 2, 局_libxl.表格取单元格内容_ (局_当前行 - 1, 2, ))
计次循环尾 ()

子程序名返回值类型公开备 注
_按钮_导出表格_被单击  
变量名类 型静态数组备 注
局_文件文本型 
局_libxlLibXL 
局_当前行整数型 
局_索引整数型 
通用对话框.类型 = 1
如果真 (通用对话框.打开 ())
' 判断表格文件并使用对应方法进行对象创建
' 注:对象创建后,如果在线程内需要重新创建,记得先释放。
局_文件 = 通用对话框.文件名
判断 (寻找文本 (局_文件, “*.xlsx”, , ) > -1)
局_libxl.创建XLSX ()
局_libxl.创建XLS ()

' 初始化需要
局_libxl.注册 (“GCCG”, “windows-282123090cc0e6036db16b60a1o3p0h9”)
局_libxl.添加表格 (“Sheet1”, )  ' 自定义表名
局_libxl.取表格句柄 (0)
' 导出超级列表框的内容
计次循环首 (超级列表框.取表项数 (), 局_索引)
局_索引 = 局_索引 - 1
局_libxl.表格置单元格内容_ (局_当前行, 0, 超级列表框.取标题 (局_索引, 0), )
局_libxl.表格置单元格内容_ (局_当前行, 1, 超级列表框.取标题 (局_索引, 1), )
局_libxl.表格置单元格内容_ (局_当前行, 2, 超级列表框.取标题 (局_索引, 2), )
局_当前行 = 局_当前行 + 1  ' 控制写入表格中的行号
计次循环尾 ()
' 保存表格文件
判断 (局_libxl.保存EXCEL (局_文件))
信息框 (“保存成功”, #信息图标, , )
信息框 (“保存失败”, #错误图标, , )


子程序名返回值类型公开备 注
__启动窗口_创建完毕  



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



补充内容 (2025-1-24 17:26):
本机创建 Excel 文件自动加密,本机是能正常打开的




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