|

10精币
.版本 2
.支持库 eGrid
.支持库 EThread
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 是否刷新, 逻辑型
.子程序 __启动窗口_创建完毕
添加日志 (“程序启动,开始初始化...”)
' 初始化高级表格
高级表格1.行数 = 1 ' 只保留表头行
高级表格1.列数 = 9
添加日志 (“初始化表格:1行9列”)
' 设置表头
设置表头 ()
编辑框_分钟.内容 = “5”
是否刷新 = 假
添加日志 (“系统初始化完成”)
.子程序 设置表头
添加日志 (“开始设置表头...”)
高级表格1.置数据 (0, 0, #表格常量.文本型, “序号”)
高级表格1.置数据 (0, 1, #表格常量.文本型, “企业名称”)
高级表格1.置数据 (0, 2, #表格常量.文本型, “区域”)
高级表格1.置数据 (0, 3, #表格常量.文本型, “联系电话”)
高级表格1.置数据 (0, 4, #表格常量.文本型, “证件类型”)
高级表格1.置数据 (0, 5, #表格常量.文本型, “开始时间”)
高级表格1.置数据 (0, 6, #表格常量.文本型, “到期时间”)
高级表格1.置数据 (0, 7, #表格常量.文本型, “中间人”)
高级表格1.置数据 (0, 8, #表格常量.文本型, “备注”)
添加日志 (“表头设置完成”)
.子程序 添加日志
.参数 日志内容, 文本型
编辑框_日志.加入文本 (“[” + 时间到文本 (取现行时间 (), ) + “] ” + 日志内容 + #换行符)
编辑框_日志.发送信息 (277, 7, 0) ' 滚动到底部
.子程序 _按钮_导入表格_被单击
.局部变量 Excel, 对象
.局部变量 工作簿, 对象
.局部变量 工作表, 对象
.局部变量 文件名, 文本型
.局部变量 行数, 整数型
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 单元格值, 变体型
添加日志 (“开始导入Excel数据...”)
' 选择文件
通用对话框1.过滤器 = “Excel文件(*.xlsx)|*.xlsx”
.如果真 (通用对话框1.打开 () = 假)
添加日志 (“用户取消选择文件”)
返回 ()
.如果真结束
文件名 = 通用对话框1.文件名
添加日志 (“选择的文件:” + 文件名)
' 创建Excel对象
.如果真 (Excel.创建 (“Excel.Application”, ) = 假)
添加日志 (“错误:无法创建Excel对象”)
信息框 (“无法连接Excel,请检查Office/WPS安装!”, 0, “错误”, )
返回 ()
.如果真结束
添加日志 (“Excel对象创建成功”)
Excel.写属性 (“Visible”, 假)
添加日志 (“设置Excel不可见”)
' 打开工作簿
工作簿 = Excel.对象型方法 (“Workbooks”, ).对象型方法 (“Open”, 文件名)
工作表 = 工作簿.对象型方法 (“Worksheets”, ).对象型方法 (“Item”, 1)
添加日志 (“工作簿打开成功”)
' 清空现有表格
.判断循环首 (高级表格1.行数 > 0)
高级表格1.删除行 (0)
.判断循环尾 ()
添加日志 (“清空现有表格完成”)
' 获取数据行数
行数 = 工作表.对象型方法 (“UsedRange”, ).对象型方法 (“Rows”, ).读数值属性 (“Count”, )
高级表格1.行数 = 行数
添加日志 (“获取到” + 到文本 (行数) + “行数据”)
' 导入数据
.计次循环首 (行数, i)
.计次循环首 (9, j)
单元格值 = 工作表.对象型方法 (“Cells”, i, j).读属性 (“Value”, )
高级表格1.置数据 (i - 1, j - 1, #表格常量.文本型, 到文本 (单元格值))
.计次循环尾 ()
.如果真 (i % 10 = 0)
添加日志 (“正在导入第” + 到文本 (i) + “行...”)
处理事件 ()
.如果真结束
.计次循环尾 ()
' 关闭Excel
工作簿.对象型方法 (“Close”, 假)
Excel.对象型方法 (“Quit”, )
Excel.清除 ()
添加日志 (“Excel资源已释放”)
添加日志 (“数据导入完成,共导入” + 到文本 (行数) + “行数据”)
信息框 (“数据导入完成!”, 0, “提示”, )
.子程序 _按钮_导出表格_被单击
.局部变量 Excel, 对象
.局部变量 工作簿, 对象
.局部变量 工作表, 对象
.局部变量 文件名, 文本型
.局部变量 行数, 整数型
.局部变量 列数, 整数型
.局部变量 j, 整数型
.局部变量 i, 整数型
添加日志 (“开始导出数据到Excel...”)
' 选择保存位置
通用对话框1.类型 = 1
通用对话框1.过滤器 = “Excel文件(*.xlsx)|*.xlsx”
通用对话框1.文件名 = “导出数据.xlsx”
.如果真 (通用对话框1.打开 () = 假)
添加日志 (“用户取消保存”)
返回 ()
.如果真结束
文件名 = 通用对话框1.文件名
.如果真 (取文本右边 (文件名, 5) ≠ “.xlsx”)
文件名 = 文件名 + “.xlsx”
.如果真结束
添加日志 (“保存路径:” + 文件名)
' 检查文件是否存在
.如果真 (文件是否存在 (文件名))
.如果 (信息框 (“文件已存在,是否覆盖?”, #是否钮 + #询问图标, “确认”, ) = #否钮)
添加日志 (“用户选择不覆盖文件”)
返回 ()
.否则
.如果结束
.如果真结束
' 创建Excel对象
.如果真 (Excel.创建 (“Excel.Application”, ) = 假)
添加日志 (“错误:无法创建Excel对象”)
信息框 (“无法创建Excel对象,请检查Office/WPS安装!”, 0, “错误”, )
返回 ()
.如果真结束
添加日志 (“Excel对象创建成功”)
Excel.写属性 (“Visible”, 假)
添加日志 (“设置Excel不可见”)
' 创建工作簿
工作簿 = Excel.对象型方法 (“Workbooks”, ).对象型方法 (“Add”, )
工作表 = 工作簿.对象型方法 (“Worksheets”, ).对象型方法 (“Item”, 1)
添加日志 (“新工作簿创建成功”)
' 获取表格数据
行数 = 高级表格1.行数
列数 = 高级表格1.列数
添加日志 (“开始导出” + 到文本 (行数) + “行数据”)
' 写入表头
.计次循环首 (列数, j)
工作表.对象型方法 (“Cells”, 1, j).写属性 (“Value”, 高级表格1.取数据 (0, j - 1))
.计次循环尾 ()
添加日志 (“表头写入完成”)
' 写入数据
.计次循环首 (行数 - 1, i)
.计次循环首 (列数, j)
工作表.对象型方法 (“Cells”, i + 1, j).写属性 (“Value”, 高级表格1.取数据 (i, j - 1))
.计次循环尾 ()
.如果真 (i % 10 = 0)
添加日志 (“正在导出第” + 到文本 (i) + “行...”)
处理事件 ()
.如果真结束
.计次循环尾 ()
' 保存文件
工作簿.对象型方法 (“SaveAs”, 文件名, 51) ' 51表示xlsx格式
添加日志 (“文件保存成功”)
' 关闭Excel
工作簿.对象型方法 (“Close”, 假)
Excel.对象型方法 (“Quit”, )
Excel.清除 ()
添加日志 (“Excel资源已释放”)
添加日志 (“数据导出完成”)
信息框 (“文件保存成功!”, 0, “提示”, )
.子程序 _按钮_开始刷新_被单击
.局部变量 刷新间隔, 整数型
.局部变量 刷新线程句柄
添加日志 (“开始设置自动刷新...”)
.如果真 (是否刷新 = 真)
添加日志 (“自动刷新已在运行中”)
返回 ()
.如果真结束
刷新间隔 = 到整数 (编辑框_分钟.内容) × 60 × 1000
是否刷新 = 真
启动线程 (&定时刷新任务, , 刷新线程句柄)
添加日志 (“自动刷新已启动,间隔:” + 到文本 (刷新间隔 ÷ 60000) + “分钟”)
.子程序 _按钮_停止刷新_被单击
添加日志 (“停止自动刷新...”)
是否刷新 = 假
添加日志 (“自动刷新已停止”)
.子程序 定时刷新任务
.局部变量 刷新间隔, 整数型
刷新间隔 = 到整数 (编辑框_分钟.内容) × 60 × 1000
添加日志 (“定时刷新任务开始运行”)
.判断循环首 (是否刷新)
添加日志 (“执行定时刷新检查...”)
检查到期提醒 ()
延迟 (刷新间隔)
.判断循环尾 ()
添加日志 (“定时刷新任务结束”)
.子程序 检查到期提醒
.局部变量 当前行数, 整数型
.局部变量 i, 整数型
.局部变量 到期时间, 文本型
.局部变量 剩余天数, 整数型
添加日志 (“开始检查到期提醒...”)
当前行数 = 高级表格1.行数
.计次循环首 (当前行数 - 1, i)
到期时间 = 高级表格1.取数据 (i, 6)
.如果真 (到期时间 ≠ “”)
剩余天数 = 取时间间隔 (到时间 (到期时间), 取现行时间 (), #日)
.如果真 (剩余天数 ≤ 7)
添加日志 (“提醒:企业【” + 高级表格1.取数据 (i, 1) + “】的证件将在” + 到文本 (剩余天数) + “天后到期!”)
.如果真结束
.如果真结束
.计次循环尾 ()
添加日志 (“到期检查完成”)
.子程序 程序_延时, 整数型
.参数 毫秒数, 整数型
.局部变量 开始时间, 整数型
开始时间 = 取启动时间 ()
.判断循环首 (取启动时间 () - 开始时间 < 毫秒数)
.判断循环尾 ()
' 空循环等待
.判断循环首 ()
.判断循环尾 ()
返回 (0)
.子程序 _按钮_新建表格模板_被单击
.局部变量 Excel, 对象
.局部变量 工作簿, 对象
.局部变量 工作表, 对象
.局部变量 保存路径, 文本型
.局部变量 表头数组, 文本型, , "9"
.局部变量 i, 整数型
.局部变量 成功, 逻辑型
.局部变量 验证值, 文本型
.局部变量 Excel验证, 对象
.局部变量 工作簿验证, 对象
.局部变量 工作表验证, 对象
.局部变量 最终验证值, 文本型
.局部变量 调试信息, 文本型
添加日志 (“开始创建Excel模板...”)
' 设置表头内容
表头数组 [1] = “序号”
表头数组 [2] = “企业名称”
表头数组 [3] = “区域”
表头数组 [4] = “联系电话”
表头数组 [5] = “证件类型”
表头数组 [6] = “开始时间”
表头数组 [7] = “到期时间”
表头数组 [8] = “中间人”
表头数组 [9] = “备注”
添加日志 (“表头内容设置完成”)
' 使用内置通用对话框组件
通用对话框1.类型 = 1 ' 保存文件对话框
通用对话框1.过滤器 = “Excel文件(*.xlsx)|*.xlsx”
通用对话框1.文件名 = “到期提醒模板.xlsx”
.如果真 (通用对话框1.打开 () = 假)
添加日志 (“用户取消选择保存路径”)
返回 ()
.如果真结束
保存路径 = 通用对话框1.文件名
.如果真 (取文本右边 (保存路径, 5) ≠ “.xlsx”)
保存路径 = 保存路径 + “.xlsx”
.如果真结束
添加日志 (“用户选择的保存路径:” + 保存路径)
' 检查文件是否存在
.如果真 (文件是否存在 (保存路径))
.如果 (信息框 (“文件已存在,是否覆盖?”, #是否钮 + #询问图标, “提示”, ) = #否钮)
添加日志 (“用户取消操作”)
返回 ()
.否则
添加日志 (“将覆盖已存在的文件”)
.如果结束
.如果真结束
' 创建Excel对象
.如果真 (Excel.创建 (“Excel.Application”, ) = 假)
添加日志 (“错误:无法创建Excel对象,尝试使用WPS...”)
.如果真 (Excel.创建 (“et.Application”, ) = 假)
添加日志 (“错误:WPS对象也创建失败,可能无Office/WPS环境”)
信息框 (“无法创建Office/WPS对象,请安装Office或WPS!”, 0, “错误”, )
返回 ()
添加日志 (“成功创建WPS对象”)
.如果真结束
添加日志 (“成功创建Excel对象”)
.如果真结束
Excel.写属性 (“Visible”, 假)
Excel.写属性 (“DisplayAlerts”, 假)
添加日志 (“Excel属性设置完成”)
' 创建工作簿
工作簿 = Excel.对象型方法 (“Workbooks”, ).对象型方法 (“Add”, )
' 验证工作簿对象有效性
.如果真 (取对象类型 (工作簿) = 0) ' 判断对象是否有效
添加日志 (“错误:工作簿创建失败,可能内存不足”)
信息框 (“工作簿创建失败,请检查系统资源!”, 0, “错误”, )
Excel.对象型方法 (“Quit”, )
Excel.清除 ()
返回 ()
添加日志 (“工作簿创建成功”)
.如果真结束
工作表 = 工作簿.对象型方法 (“Worksheets”, ).对象型方法 (“Item”, 1)
' 验证工作表对象有效性
.如果真 (取对象类型 (工作表) = 0) ' 判断对象是否有效
添加日志 (“错误:工作表获取失败”)
信息框 (“工作表获取失败,可能模板文件损坏!”, 0, “错误”, )
工作簿.对象型方法 (“Close”, 假)
Excel.对象型方法 (“Quit”, )
Excel.清除 ()
返回 ()
添加日志 (“工作表获取成功”)
.如果真结束
' 写入表头数据
.计次循环首 (取数组成员数 (表头数组), i)
工作表.对象型方法 (“Cells”, 1, i).写属性 (“Value”, 表头数组 [i])
' 添加延迟确保写入完成
程序_延时 (100) ' 延迟100毫秒
.计次循环尾 ()
添加日志 (“表头数据写入完成,检查写入结果...”)
' 强制刷新工作表
工作表.对象型方法 (“Calculate”, )
工作表.对象型方法 (“Activate”, )
' 验证数据是否写入
验证值 = 工作表.对象型方法 (“Cells”, 1, 1).读文本属性 (“Value”, )
.如果真 (验证值 = “” 或 验证值 ≠ “序号”)
添加日志 (“错误:表头数据写入失败,获取到的值为:” + 验证值)
' 添加详细调试信息
调试信息 = “当前工作表状态检查:” + #换行符
' 修复:使用正确的属性获取单元格值
调试信息 = 调试信息 + “A1单元格值:” + 工作表.对象型方法 (“Cells”, 1, 1).读文本属性 (“Value”, ) + #换行符
' 修复:使用正确的格式属性
调试信息 = 调试信息 + “A1格式:” + 工作表.对象型方法 (“Cells”, 1, 1).读文本属性 (“NumberFormatLocal”, )
添加日志 (调试信息)
信息框 (“表头数据写入失败,可能Excel接口异常!” + #换行符 + “详细错误信息已记录到日志”, 0, “错误”, )
工作簿.对象型方法 (“Close”, 假)
Excel.对象型方法 (“Quit”, )
Excel.清除 ()
返回 ()
添加日志 (“表头数据验证成功,获取到的值为:” + 验证值)
.如果真结束
' 设置表头样式
工作表.对象型方法 (“Range”, “A1:I1”).写属性 (“Font.Bold”, 真)
工作表.对象型方法 (“Range”, “A1:I1”).写属性 (“Interior.Color”, 12632256)
添加日志 (“表头样式设置完成”)
' 自动调整列宽
工作表.对象型方法 (“Columns”, ).对象型方法 (“AutoFit”, )
添加日志 (“列宽自动调整完成”)
' 保存文件
.如果真 (工作簿.对象型方法 (“SaveAs”, 保存路径, 51) = 假)
添加日志 (“错误:文件保存方法执行异常,路径:” + 保存路径)
信息框 (“文件保存失败,可能路径无写入权限!”, 0, “错误”, )
工作簿.对象型方法 (“Close”, 假)
Excel.对象型方法 (“Quit”, )
Excel.清除 ()
返回 ()
添加日志 (“文件保存操作完成,路径:” + 保存路径)
.如果真结束
' 关闭Excel
工作簿.对象型方法 (“Close”, 假)
Excel.对象型方法 (“Quit”, )
Excel.清除 ()
添加日志 (“Excel资源已释放,检查最终文件...”)
' 最终验证文件存在且内容正确
.如果 (文件是否存在 (保存路径))
.如果真 (Excel验证.创建 (“Excel.Application”, ) ≠ 假)
Excel验证.写属性 (“Visible”, 假)
工作簿验证 = Excel验证.对象型方法 (“Workbooks”, ).对象型方法 (“Open”, 保存路径)
.如果真 (取对象类型 (工作簿验证) ≠ 0)
工作表验证 = 工作簿验证.对象型方法 (“Worksheets”, ).对象型方法 (“Item”, 1)
最终验证值 = 工作表验证.对象型方法 (“Cells”, 1, 1).读文本属性 (“Value”, )
.如果 (最终验证值 = “序号”)
添加日志 (“模板创建成功:” + 保存路径)
信息框 (“模板文件已成功创建!”, 0, “提示”, )
.否则
添加日志 (“错误:文件存在但内容验证失败,值为:” + 最终验证值)
信息框 (“模板创建失败,文件内容验证未通过!”, 0, “错误”, )
.如果结束
工作簿验证.对象型方法 (“Close”, 假)
.如果真结束
Excel验证.对象型方法 (“Quit”, )
Excel验证.清除 ()
.如果真结束
.否则
添加日志 (“错误:模板创建失败,文件不存在”)
信息框 (“模板创建失败,请检查权限或路径是否可写!”, 0, “错误”, )
.如果结束
我是一个刚开始学习易语言的
总是会遇到各种问题,现在的问题是,错误(10044): 不能将“文本型”数据转换到“整数型”数据,换了几种方式写,最好的就是,可以新建模版文件,但是文件里无内容
|
|