设为首页收藏本站

 找回密码
 立即注册

只需一步,快速开始

搜索
查看: 199|回复: 21

[实用软件] excel表格 批量时间生成工具

 火... [复制链接]
累计签到:32 天
连续签到:3 天
灌水成绩
9
60
4649
主题
帖子
积分

等级头衔

ID : 661

助理工程师

积分成就 测量币 : 4649
在线时间 : 0 小时
注册时间 : 2026-1-14
最后登录 : 2026-5-25

勋章
UID勋章测量学徒测量员
发表于 2026-4-15 05:18:27 | 显示全部楼层 |阅读模式 IP:北京
使用ahk2编写  不能过天 只能生成当天的时间 有需要自取 也可自行修改
之前忘记说使用场景了  这里做个补充  由于有时我做表格上交需要填写时间要精确到秒,
以前都一个个的改,后来用按键精灵写了一个 最后用ahk2做的这个  
生成后直接复制到使用的表格内。 对有用的来说很实用,没用的看看就行了 啥用没有
主要就是填写表格内时间的


程序自动获取当前时间,可自行更改,填写个数为生成多少个时间,每次时间为累加状态,累加时间随机,随机数程序上有写(秒)点击生成并导出会在程序根目录 生成csv文件内为时间

https://wwata.lanzouv.com/iGoh03m324qb










可以自定义间隔时间的
https://wwata.lanzouv.com/ipzFZ3mmnn0j
密码:4r7u












Requires AutoHotkey v2.0.21+

SingleInstance Force

; 主GUI创建
MainGUI := Gui("-MinimizeBox +LastFound", "批量生成工具")
MainGUI.SetFont("s10", "微软雅黑")
; 1. 时间输入框(默认当前时间,格式:YYYY-MM-DD HH:mm:ss)
MainGUI.Add("Text", "x20 y20 w80 h25", "时间:")
CurrentTime := FormatTime(, "yyyy-MM-dd HH:mm:ss")  ; 获取当前系统时间并格式化
timeInput := MainGUI.Add("Edit", "x100 y20 w200 h25", CurrentTime)
timeInput.ToolTip := "请输入有效的时间,格式:YYYY-MM-DD HH:mm:ss"
; 2. 个数输入框
MainGUI.Add("Text", "x20 y60 w80 h25", "个数:")
countInput := MainGUI.Add("Edit", "x100 y60 w200 h25", "")
countInput.ToolTip := "请输入正整数"
; 3. 生成按钮
generateBtn := MainGUI.Add("Button", "x100 y100 w100 h30", "生成并导出")
generateBtn.OnEvent("Click", GenerateAndExport)
; 调整GUI大小并居中显示
MainGUI.Show("w350 h150 Center")
return
; 生成并导出核心函数(仅递增时分秒,无ByRef,无语法错误)
GenerateAndExport(*) {
; 获取输入框内容
inputTime := timeInput.Value
inputCount := countInput.Value
; 输入验证if !IsValidTime(inputTime) {    MsgBox("时间格式错误!请按照 YYYY-MM-DD HH:mm:ss 格式输入", "错误", "0x10")    timeInput.Focus()    return}if !IsInteger(inputCount) || inputCount < 1 {    MsgBox("个数必须是正整数!", "错误", "0x10")    countInput.Focus()    return}; 拆分起始时间:分离日期和时分秒(日期固定不变)timeParts := StrSplit(inputTime, " ")datePart := timeParts[1]  ; 提取日期部分(YYYY-MM-DD)hmsPart := timeParts[2]   ; 提取时分秒部分(HH:mm:ss); 拆分时分秒为数值hmsSplit := StrSplit(hmsPart, ":")hour := hmsSplit[1] + 0min := hmsSplit[2] + 0sec := hmsSplit[3] + 0; 构造CSV格式内容(首行是表头)outputContent := "时间,序号`n"Loop (inputCount) {    ; 格式化当前时分秒(补零确保格式统一)    currentHms := Format("{:02d}:{:02d}:{:02d}", hour, min, sec)    ; 拼接日期+当前时分秒,写入CSV    currentTimeStr := datePart . " " . currentHms    outputContent .= currentTimeStr . "," . A_Index . "`n"    ; 最后一行不需要递增    if (A_Index < inputCount) {        ; 生成X到Y之间的随机秒数        randomSeconds := Round(Random(62, 135))        ; 调用函数获取递增后的时分秒(返回数组,无ByRef)        newHMS := AddSecondsToHMS(randomSeconds, hour, min, sec)        hour := newHMS[1]        min := newHMS[2]        sec := newHMS[3]    }}; 导出到脚本所在文件夹(CSV格式,UTF-8带BOM适配Excel)scriptPath := A_ScriptDirfileName := "生成结果_" . FormatTime(, "yyyyMMddHHmmss") . ".csv"fullPath := scriptPath . "\" . fileNametry {    FileAppend(outputContent, fullPath, "UTF-8-RAW")    MsgBox("CSV文件生成成功!`n文件路径:" . fullPath, "成功", "0x40")} catch as err {      MsgBox("生成失败:" . err.Message, "错误", "0x10")}}
; 时间格式验证函数(仅验证格式)
IsValidTime(timeStr) {
; 正则匹配 YYYY-MM-DD HH:mm:ss 格式
regexPattern := &quot;^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$&quot;
if !RegExMatch(timeStr, regexPattern) {
return false
}
return true
}
; 辅助函数:累加秒数并返回新的时分秒(返回数组,彻底移除ByRef)
AddSecondsToHMS(secondsToAdd, hour, min, sec) {
; 累加秒数
sec += secondsToAdd
; 处理秒→分进位if (sec >= 60) {    min += Floor(sec / 60)    sec := Mod(sec, 60)}; 处理分→时进位(仅到小时,不处理天)if (min >= 60) {    hour += Floor(min / 60)    min := Mod(min, 60)}; 返回新的时分秒数组return [hour, min, sec]}
累计签到:61 天
连续签到:41 天
灌水成绩
2
233
14448
主题
帖子
积分

等级头衔

ID : 552

中级工程师

积分成就 测量币 : 14448
在线时间 : 527 小时
注册时间 : 2025-11-11
最后登录 : 2026-7-5

勋章
UID勋章测量学徒测量员
发表于 2026-4-15 17:51:47 | 显示全部楼层 IP:安徽合肥
希望继续更新相关系列。
回复

使用道具 举报

累计签到:60 天
连续签到:40 天
灌水成绩
3
235
15225
主题
帖子
积分

等级头衔

ID : 578

中级工程师

积分成就 测量币 : 15225
在线时间 : 533 小时
注册时间 : 2026-3-12
最后登录 : 2026-7-5

勋章
UID勋章测量学徒测量员
发表于 2026-4-27 12:18:04 | 显示全部楼层 IP:美国
讲解通俗易懂,不搞玄学。
回复

使用道具 举报

累计签到:58 天
连续签到:48 天
灌水成绩
2
222
13834
主题
帖子
积分

等级头衔

ID : 546

中级工程师

积分成就 测量币 : 13834
在线时间 : 526 小时
注册时间 : 2026-1-30
最后登录 : 2026-7-5

勋章
UID勋章测量学徒测量员
发表于 2026-4-30 02:09:19 | 显示全部楼层 IP:广东东莞
讲解细致,不容易踩坑。
回复

使用道具 举报

累计签到:58 天
连续签到:46 天
灌水成绩
3
242
16290
主题
帖子
积分

等级头衔

ID : 509

中级工程师

积分成就 测量币 : 16290
在线时间 : 517 小时
注册时间 : 2025-12-25
最后登录 : 2026-7-5

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 01:10:33 | 显示全部楼层 IP:广东东莞
内容专业但不晦涩。
回复

使用道具 举报

累计签到:59 天
连续签到:40 天
灌水成绩
4
241
16525
主题
帖子
积分

等级头衔

ID : 535

中级工程师

积分成就 测量币 : 16525
在线时间 : 527 小时
注册时间 : 2026-2-19
最后登录 : 2026-7-5

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 01:10:33 | 显示全部楼层 IP:广东东莞
对新手非常友好,点赞。
回复

使用道具 举报

累计签到:56 天
连续签到:46 天
灌水成绩
4
230
14545
主题
帖子
积分

等级头衔

ID : 566

中级工程师

积分成就 测量币 : 14545
在线时间 : 530 小时
注册时间 : 2026-1-23
最后登录 : 2026-7-5

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 01:19:47 | 显示全部楼层 IP:广东东莞
图文搭配很好,理解更快。
回复

使用道具 举报

累计签到:59 天
连续签到:45 天
灌水成绩
4
216
14373
主题
帖子
积分

等级头衔

ID : 556

中级工程师

积分成就 测量币 : 14373
在线时间 : 527 小时
注册时间 : 2025-10-24
最后登录 : 2026-7-5

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 01:19:47 | 显示全部楼层 IP:广东东莞
内容很前沿,紧跟技术趋势。
回复

使用道具 举报

累计签到:28 天
连续签到:1 天
灌水成绩
1
201
13994
主题
帖子
积分

等级头衔

ID : 597

中级工程师

积分成就 测量币 : 13994
在线时间 : 0 小时
注册时间 : 2025-9-4
最后登录 : 2026-6-2

勋章
UID勋章测量学徒测量员
发表于 2026-5-1 01:21:43 | 显示全部楼层 IP:广东东莞
每一段都有重点,看得很轻松。
回复

使用道具 举报

累计签到:30 天
连续签到:1 天
灌水成绩
0
53
3401
主题
帖子
积分

等级头衔

ID : 1002

助理工程师

积分成就 测量币 : 3401
在线时间 : 0 小时
注册时间 : 2026-2-16
最后登录 : 2026-6-22

勋章
UID勋章测量学徒测量员
发表于 2026-5-9 12:14:26 | 显示全部楼层 IP:广东东莞
语言精炼,不啰嗦。
回复

使用道具 举报

快速回复换一批
路过留名
强无敌
楼主好人一生平安
业界良心! 楼主这波操作太牛了,细节拉满,顶起来让更多人看到! 🌟👏
自古二楼出人才? 我来占个前排,楼主继续,不要停! 🏃‍♂️💨
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|精密测量技术论坛 ( 桂ICP备2026007449号-1 )

GMT+8, 2026-7-5 15:01 , Processed in 1.308716 second(s), 52 queries .

Powered by 精密测量技术论坛

© 2025-2026 联系站长

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