试图使用AppleScript将.xls和.xlsx转换为.txt(制表符分隔),需要修复

我从我从另一个线程得到的答案复制这个。 我试图将〜300 .xls和.xlsx文件转换为制表符分隔。 他们都在同一个文件夹中。 如果有人知道更好的方法,请让我知道。

property type_list : {"XLS6", "XLS7", "XLS8", "XLSX"} property extension_list : {"xls", "xlsx"} on open these_workbooks repeat with k from 1 to the count of these_workbooks set this_item to item k of these_workbooks set the item_info to info for this_item --this if statement tests to make sure the items you're converting are Excel spreadsheets and not folders or aliases if (folder of the item_info is false) and (alias of the item_info is false) and ((the file type of the item_info is in the type_list) or the name extension of the item_info is in the extension_list) then tell application "Finder" to open this_item tell application "Microsoft Excel" --this just tacks on ".txt" to your file name set workbookName to (name of active workbook & ".txt") --save the current open workbook as a tab-delimited text file tell active workbook to save workbook as filename workbookName file format text Mac file format close active workbook saving no end tell end if end repeat end open on run display dialog "Drop Excel files onto this icon." end run 

所有这些都是打开一个对话框,什么也不做。 即使它是一个液滴,当我拖动一个文件时,没有任何反应。

在Applescript中, run处理程序在脚本或应用程序正常运行时运行。 同时, open VarName处理程序在某些文件或文件被拖放到应用程序的图标上时被运行,并且文件被设置为variablesVarName 。 您张贴的脚本巧妙地display dialogon run处理程序,试图帮助您了解这种用法​​。 相反,将脚本保存为应用程序,然后将文件放到它上面。

编辑:

在一个终于有了Excel 2011的Mountain Lion机器上进行了一次快速testing之后(我没有意识到我有多复杂):

 property type_list : {"XLS6", "XLS7", "XLS8", "XLSX"} property extension_list : {"xls", "xlsx"} on open these_workbooks repeat with k from 1 to the count of these_workbooks set this_item to item k of these_workbooks set the item_info to info for this_item --this if statement tests to make sure the items you're converting are Excel spreadsheets and not folders or aliases if (folder of the item_info is false) and (alias of the item_info is false) and ((the file type of the item_info is in the type_list) or the name extension of the item_info is in the extension_list) then tell application "Finder" to open this_item tell application "Microsoft Excel" --this just tacks on ".txt" to your file name set workbookName to (path to desktop as string) & "After:" & (name of active workbook & ".txt") display dialog workbookName --save the current open workbook as a tab-delimited text file tell active workbook to save workbook as filename workbookName file format text Mac file format close active workbook saving no end tell end if end repeat end open on run display dialog "Drop Excel files onto this icon." end run