自动增量备份Excel表内容 v1.2 | 您所在的位置:网站首页 › splitpath脚本 › 自动增量备份Excel表内容 v1.2 |
Home Board index
Other languages
中文 (Chinese)
脚本函数
Search
It is currently 12 Jul 2024, 21:10
All times are UTC-05:00
自动增量备份Excel表内容 v1.2
许多实用脚本和封装函数, 可以让您编写脚本更加便捷高效
Moderators: tmplinshi, arcticir Post Reply Print view 3 posts • Page 1 of 1 feiyue Posts: 366 Joined: 08 Aug 2014, 04:08 自动增量备份Excel表内容 v1.2 @ Quote23 Oct 2018, 00:32 为防止重要的工作表格不慎损坏或被他人删改内容,写了这个自动增量备份Excel表内容的脚本。Code: Select all ;------------------------------------------- ; 自动增量备份Excel表内容 v1.2 By FeiYue ; ; 备份1:若磁盘中指定的Excel文件内容有变动, ; 就将最新内容替换上次的最近一次备份。 ; ; 备份2:若最新内容删改了上次的最近一次备份已有的内容, ; 就将上次的最近一次备份以当前时间节点附加备份。 ; ; 用法:1、先复制一份rar.exe到脚本所在目录。 ; 2、在脚本中设定两项: ; "Excel文件路径"和"需备份的工作表标签" ; 3、按F9启动备份,及定时自动备份。 ;------------------------------------------- #NoEnv #SingleInstance Force SetWorkingDir, %A_ScriptDir% CoordMode, ToolTip ;-- 改变托盘图标便于区别 Menu, Tray, Icon, Shell32.dll, 6 ;-- 先手动复制一份rar.exe到脚本所在目录 IfNotExist, rar.exe { MsgBox, 4096, 错误, 脚本所在目录中没有找到 Rar.exe ! return } ;---- 设定两项,注意Excel文件越大打开的时间越久 Excel文件路径:="F:\医保工作目录\2018年度\2018年医保.xls" 需备份的工作表标签:="2018年度" 保存目录:=A_ScriptDir ;---------------------------------------------- return F8:: ;-- 按【F8】热键重启脚本 SplitPath, A_ScriptName,,,, name IfWinExist, %name% { ControlSend, ahk_parent, {Ctrl Down}s{Ctrl Up} Sleep, 500 } Reload Sleep, 1000 return F9:: ;-- 按【F9】热键启动备份,及定时自动备份 ;-- 检验 Excel文件路径 是否正确 IfNotExist, %Excel文件路径% { MsgBox, 4096, 错误, %Excel文件路径% 未找到! return } SplitPath, Excel文件路径,,, 后缀, 文件名 if 后缀 not in xls,xlsx { MsgBox, 4096, 错误, 文件类型不是 Excel 表格! return } ;---- 每10分钟自动备份一次 ---- SetTimer, %A_ThisLabel%, % 1000*60*10 ToolTip, `n 正在复制表格内容—— `n`t, 10, 10, 9 ;-- 复制电子表格中的内容 s= objExcel:=ComObjCreate("Excel.Application") objExcel.Workbooks.Open(Excel文件路径) Loop, % objExcel.Worksheets.Count { if (objExcel.Worksheets[A_Index].name = 需备份的工作表标签) { bak:=ClipboardAll Sleep, 200 Clipboard= objExcel.Worksheets[A_Index].UsedRange.Copy s:=Clipboard, Clipboard:=bak, bak:="" Break } } objExcel.Workbooks.Close objExcel.Quit objExcel= if s= { ToolTip,,,, 9 return } ToolTip, `n 正在比较内容是否变动—— `n`t, 10, 10, 9 ;-- 备份文件、临时文件及当前时间节点文件 rarfile:=保存目录 "\" 文件名 "-备份.rar" tmpfile:=A_Temp "\" 文件名 "(最近一次备份).tmp" addfile:=A_Temp "\" 文件名 "-" A_YYYY "-" A_MM "-" A_DD . "-" A_Hour "-" A_Min "-" A_Sec ".txt" ;-- 解压到临时文件夹来比较 IfExist, %rarfile% { ;-- rar参数:e忽略路径解压 y回答是 o+覆盖 n仅包括文件 RunWait, rar.exe e -y -o+ -n*.tmp "%rarfile%" "%A_Temp%\" ,, Hide IfNotExist, %tmpfile% { MsgBox, 4096, 错误, 解压文件 %tmpfile% 未成功! ToolTip,,,, 9 s= return } FileRead, ss, %tmpfile% ;-- 没有变动就退出 if RegExReplace(ss,"\s+")=RegExReplace(s,"\s+") { FileDelete, %tmpfile% ToolTip,,,, 9 s:=ss:="" return } Loop, Parse, ss, `r, `n { ;-- 检查每行的“姓名+身份证”有没有删改 StringSplit, r, A_LoopField, %A_Tab% if !InStr(s, r2 . A_Tab . r3) { ;-- 若前面内容有删改,则添加当前时间节点的附加备份 FileCopy, %tmpfile%, %addfile%, 1 Break } } ss:="" } ToolTip, `n 正在添加到备份中—— `n`t, 10, 10, 9 ;-- 更新最近一次备份 FileDelete, %tmpfile% FileAppend, %s%, %tmpfile% ;-- rar参数:m压缩并删除 y回答是 rr添加恢复记录 ep不带目录 RunWait, rar.exe m -y -rr5p -ep "%rarfile%" "%tmpfile%" "%addfile%" ,, Hide IfExist, %addfile% FileDelete, %addfile% ToolTip,,,, 9 s= return ;============ 脚本结束 ============ ; Top nams Posts: 7 Joined: 20 Jun 2016, 07:44 Re: 自动增量备份Excel表内容 v1.2 @ Quote23 Oct 2018, 21:48 为什么不用dropbox? Top lx930129 Posts: 10 Joined: 13 Sep 2016, 03:41 Re: 自动增量备份Excel表内容 v1.2 @ Quote05 Nov 2018, 21:42 dropbox国内使用不是太友好吧,有些场合也无法联网 Top Post Reply Print view 3 posts • Page 1 of 1Return to “脚本函数” Jump to AutoHotkey Foundation About This Community Forum Issues AutoHotkey (v2, current version) Ask for Help (v2) Gaming Scripts and Functions (v2) Gaming Tutorials (v2) Tips and Tricks Wish List Suggestions on Documentation Improvements Bug Reports AutoHotkey Development AutoHotkey_H Ask for Help Development Editors Adventure IDE Old Topics AHK Studio Notepad++ Pulovers Macro Creator SciTE4AutoHotkey Visual Studio Code Announcements General Discussion AutoHotkey (v1.1 and older) Ask for Help (v1) Gaming Help (v1) Scripts and Functions (v1) Gaming Scripts (v1) Tutorials (v1) Tips and Tricks (v1) General Other Utilities & Resources Other Programming Languages C/C++ ASM C# KeySharp Off-topic Discussion RPA Other languages Looking for Volunteers in other languages Deutsch (German) Ich brauche Hilfe Spiele Skripte und Funktionen Tutorials Tooltime Allgemeines 中文 (Chinese) 请求帮助 脚本函数 教程资料 相关工具 其他 Español (Spanish) Pedir Ayuda Automatización de Juegos Scripts y Funciones Tutoriales Otras Utilidades y Recursos General Русский (Russian) Помощь Скрипты для Игр Скрипты и библиотеки Статьи и руководства Прочие ресурсы и ПО. Свободное общение Français (French) J'ai besoin d'aide Scripts et Fonctions Tutoriels Autres Utilitaires et Ressources Hors Sujet Português (Portuguese) Ajuda e Suporte Geral Scripts e Funções Tutoriais Outras Ferramentas e Recursos Outros Assuntos 한국어 (Korean) Who is onlineUsers browsing this forum: No registered users and 12 guests |
CopyRight 2018-2019 实验室设备网 版权所有 |