Applescript Excel 2016 另存为 CSV
Posted
技术标签:
【中文标题】Applescript Excel 2016 另存为 CSV【英文标题】:Applescript Excel 2016 SAVE AS CSV 【发布时间】:2015-11-17 07:39:54 【问题描述】:下面的 Applescript 在 Excel 2011 中运行良好,没有任何问题。该脚本打开一个 Excel 文件,删除一列并删除任何“,”或“;”从 Excel 文件,然后将其另存为 CSV 文件。我在 Excel 2016 中遇到的问题是在操作后将其保存为 CSV 文件的最后一块。没有保存任何内容,我没有收到任何错误。
tell application "Microsoft Excel"
activate
open theWorkbookFile #open the xls file
set theWorksheetname to name of worksheet 1 of active workbook
set theWorksheet to worksheet 1 of active workbook
activate object theWorksheet
tell application "System Events" to set visible of process "Microsoft Excel" to false
#Remove the first column
tell theWorksheet
delete range column 1 shift shift to left
try
##remove any "," and ";" from the product description and replace it with a " " instead.
replace (range "B:B" of worksheet "Sheet1") what "," replacement " "
replace (range "B:B" of worksheet "Sheet1") what ";" replacement " "
end try
end tell
#Set the temp csv file to the name of of the Excel sheet followed by -TMP.csv
set theFile to theWorksheetname & "-TMP" & ".csv" as text
save as theWorksheet filename theFile file format CSV file format with overwrite #save the file in csv format and overwrite if it exist
close active workbook saving no #close the csv file without prompting user to save again
end tell
【问题讨论】:
你找到解决这个问题的方法了吗? 【参考方案1】:我遇到了同样的问题,并设法“手动”保存为 CSV,使用 AppleScript 进行用户应该做的用户交互。
我的代码在下面...
#here you choose the name to your CSV file
set fileName to "ClearD -" & (current date) as string
#here you should have your original .XLSX file name and address to open it further
set theDoc to ((path to desktop folder as text) & "ClearD-Data.xlsx") as string
tell application "Microsoft Excel"
activate
open file theDoc
delay 1
tell application "System Events"
keystroke "s" using command down, shift down
delay 0.3
tell front window of (first application process whose frontmost is true)
click pop up button 2 of sheet 1
delay 0.3
#we are doing this to select CSV in the dropdown menu
repeat 3 times
keystroke "c"
end repeat
key code 36 # hit return
delay 1
repeat 50 times # this will delete whatever the current file name is and put fileName instead
key code 123 using shift down
end repeat
delay 1
#this will type your file name
keystroke fileName
delay 1
click button "Save" of sheet 1
-- set uiElems to entire contents # I use this command only to see what is out there for me to use and troubleshoot
end tell
end tell
#now we are all good so we will close excel
close active workbook saving no
end tell
【讨论】:
以上是关于Applescript Excel 2016 另存为 CSV的主要内容,如果未能解决你的问题,请参考以下文章