|

楼主 |
发表于 2025-3-13 15:02:46
|
显示全部楼层
内蒙古自治区乌海市
.版本 2
.支持库 iext
.子程序 超级列表框导出excel核心代码, 逻辑型
.参数 列表句柄, 整数型, , 需要导出内容的超级列表框句柄,如果此列表框行数和列数都小于1,则不会执行导出操作。
.参数 保存文件, 文本型, , 保存到目标文件,后缀名一般为“xls”。注:如果文件已存在则会重写改文件,如果不能打开文件则返回假。
.参数 保留表头, 逻辑型, 可空, 是否把超级列表框表头一起导出到表格文件,如果不需要导出表头,请留空此值或者赋值“假”。
.局部变量 Excel, 整数型
.局部变量 Header, 整数型
.局部变量 列数, 整数型
.局部变量 行数, 整数型
.局部变量 列索引, 整数型
.局部变量 表项索引, 整数型
.局部变量 LVCOLUMN, LVCOLUMN
.局部变量 LVITEM, LVITEM
.局部变量 Pointer, 整数型
Header = SendMessage (列表句柄, 4127, 0, 0)
列数 = SendMessage (Header, 4608, 0, 0)
行数 = SendMessage (列表句柄, 4100, 0, 0)
.如果真 (行数 < 1 且 列数 < 1) ' 全无内容,别浪费磁盘空间
返回 (假)
.如果真结束
Excel = 打开文件 (保存文件, #重写, #无限制)
.如果真 (Excel = 0)
返回 (假)
.如果真结束
移到文件首 (Excel)
写文本行 (Excel, #Table_头部)
.如果真 (保留表头 = 真 且 列数 > 0)
写文本行 (Excel, “ <tr>”)
列索引 = 0
.计次循环首 (列数, )
LVCOLUMN.mask = 4
LVCOLUMN.cchTextMax = 260
LVCOLUMN.pszText = 取空白文本 (260)
Pointer = GetPt_LVCOLUMN (LVCOLUMN, LVCOLUMN, 0)
.如果真 (SendMessage (列表句柄, 4121, 列索引, Pointer) = 0) ' 取标题失败
关闭文件 (Excel)
返回 (假)
.如果真结束
写文本行 (Excel, “ <th>” + LVCOLUMN.pszText + “</th>”)
列索引 = 列索引 + 1
.计次循环尾 ()
写文本行 (Excel, “ </tr>”)
.如果真结束
.如果真 (行数 > 0)
表项索引 = 0
.计次循环首 (行数, )
写文本行 (Excel, “ <tr>”)
列索引 = 0
.计次循环首 (列数, )
LVITEM.mask = 1
LVITEM.iItem = 表项索引 ' 项目
LVITEM.iSubItem = 列索引 ' 子项目
LVITEM.cchTextMax = 260
LVITEM.pszText = 取空白文本 (260)
Pointer = GetPt_LVITEM (LVITEM, LVITEM, 0)
.如果真 (SendMessage (列表句柄, 4101, 0, Pointer) = 0) ' 取标题失败
关闭文件 (Excel)
返回 (假)
.如果真结束
写文本行 (Excel, “ <td>” + LVITEM.pszText + “</td>”)
列索引 = 列索引 + 1
.计次循环尾 ()
写文本行 (Excel, “ </tr>”)
表项索引 = 表项索引 + 1
.计次循环尾 ()
.如果真结束
写文本行 (Excel, #Table_尾部)
关闭文件 (Excel)
返回 (真)
.子程序 超级列表框导出EXCEL, 逻辑型, 公开, 把超级列表框内容导出为Excel表格文件,成功返回真,失败返回假。注:只能导出报表列表框。
.参数 通用对话组件, 通用对话框
.参数 超级列表框组件, 超级列表框
.局部变量 表头数组, 文本型, , "0"
.局部变量 计次, 整数型
通用对话组件.类型 = 1
通用对话组件.过滤器 = “excel文件|*.xls”
通用对话组件.默认文件后缀 = “.xls”
.判断开始 (通用对话组件.打开 ())
.判断开始 (超级列表框导出excel核心代码 (超级列表框组件.取窗口句柄 (), 通用对话组件.文件名, 真))
返回 (真)
.默认
返回 (假)
.判断结束
.默认
返回 (假)
.判断结束
求帮修改一下吧
调用格式例如:超级列表框导出EXCEL (通用对话框1, 超级列表框1,“表格外上方居中位置标题名称”,自定义标题字体大小比如30,标题字体颜色#黄色,自定义表格行高20) |
|