我有一个包含大量行/列(例如~250列,数千行)的大型电子表格,我试图通过使用AppleScript循环遍历每一行,将该行的~250个变量复制到TextEdit集来转换为PDF到富文本(用于粗体格式等),然后使用系统事件将 txt 保存为 PDF。这是代码的摘要:
on run
set initialRow to 1
tell application "System Events"
tell application process "TextEdit"
set frontmost to true
end tell
end tell
repeat
tell application "Microsoft Excel"
-- CLEAR MY ~250 VARIABLES FROM PREVIOUS ROW'S VALUES TO MAKE SURE NOTHING IS CARRIED OVER BY MISTAKE
-- THEN SET MY ~250 VARIABLES TO THE NEXT ROW'S VALUES
if exampleValue is "" then exit repeat
end tell
tell application "TextEdit"
set the text of the front document to ""
-- THEN SET FIRST PARAGRAPH TO MY FIRST VARIABLE PLUS A LINE BREAK SO THEN THERE'S A NEW PARAGRAPH FOR THE NEXT VARIABLE, ETC
-- THEN GO THROUGH ALL OF MY VARIABLES TO IMPORT THE IMPORTANT ONES INTO TEXTEDIT, SET SOME FORMATTING, ETC.
end tell
delay 1
tell application "System Events"
click menu item "Export as PDF…" of menu 1 of menu bar item "File" of menu bar 1 of application process "TextEdit"
delay 1
keystroke exampleValue -- SYSTEM EVENTS TYPES THE NAME OF THE PDF
delay 1
key code 36
delay 1
end tell
set myRow to (myRow + 1)
end repeat
end run
这一切都运行良好,没有错误(似乎!),小剂量完全没有问题。然而,问题是当脚本运行时会发生一些事情,它似乎在某个地方占用了越来越多的内存。前一百行左右一切都很好,但是在某些时候我的 Mac 完全停止运行任何东西,即我是否让脚本运行直到它开始产生超级随机错误(如果有帮助,我可以收集它们,但这就像随机每次都有不同的错误,所以那里没有多大帮助)或者即使我让脚本运行一段时间然后在它出错之前停止它 - 它会让我停止脚本但我实际上无法退出脚本编辑器或TextEdit 或 Excel,我的键盘停止工作,我无法强制退出任何东西,无法重置计算机等。它
我的其他脚本从来没有遇到过这个问题,但我通常也不使用系统事件,所以我的直觉是它与此有关。我是否需要以某种方式“重置”系统事件,或者出于某种原因清除内存,或者......?谢谢您的帮助!!