自动增量备份Excel表内容 v1.2 您所在的位置:网站首页 splitpath脚本 自动增量备份Excel表内容 v1.2

自动增量备份Excel表内容 v1.2

2024-07-13 10:10| 来源: 网络整理| 查看: 265

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 @ Quote

23 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 @ Quote

23 Oct 2018, 21:48

为什么不用dropbox? Top lx930129 Posts: 10 Joined: 13 Sep 2016, 03:41 Re: 自动增量备份Excel表内容 v1.2 @ Quote

05 Nov 2018, 21:42

dropbox国内使用不是太友好吧,有些场合也无法联网 Top Post Reply Print view 3 posts • Page 1 of 1

Return 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 online

Users browsing this forum: No registered users and 12 guests



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有