2016-05-12 3 views
0

Office 2016で「アクセスの許可」問題が発生しています。ここでは、Automatorを使用して新しいファイルを開くと「アクセスを許可」を手動でクリックする必要があります。ExcelをCSVに変換するAppleScript/Automatorフォルダアクション

tell application "Microsoft Excel" 
activate 
open file "Macintosh HD:Users:path:to:file" 
end tell 

しかし、私はAutomatorのフォルダアクションを使用していているので、私はどのようにわからない:私は(ファイルオブジェクトまたは文字列の代わりに別名オブジェクトを使用して)、それを回避する方法については、この答えを見つけましたそのファイルパスを取得する必要があります。私が見つけたサンプルのほとんどは、AppleScriptの使用choose folder with promptを持っていますが、これの全ポイントは完全に自動化されているので、それはうまくいきません。

考え方は次のとおりです。

  1. Excelファイルを
  2. フォルダアクションをCSVに
  3. csvファイルを変換するために、XLSファイルを促し「のForSQL」フォルダにダウンロードされる、それはUTF-にとどまることを確認するためにTextWrangleで開きます8
  4. はその後公式「SQL」
  5. はそれが開かれたすべてのアプリケーションを閉じ、それが「のForSQL」フォルダから移動何でも削除したフォルダに移動し

しかし、私は同じ最終結果を得るためのより良い提案には公開されています。

これまでの私のAutomatorワークフローですが、「Excelファイルのフォーマットを変換する」ステップをAppleScriptと置き換えて、「許可アクセス」ポップアップを消す必要があるようです。唯一、

AutomatorWorkflow

答えて

0

私はあなたがtextWrangleで何をしたいのか理解することを確認していないが、スクリプト怒鳴るが、前と後のすべての手順を行います:それは何か「のForSQL」フォルダに当たったときに起動するフォルダアクションですアップルスクリプト(Automatorアクションは必要ありません)を使用して:実際には

--this choose file must be replaced by your "input" of automator folder items 
set Fxl to choose file --the Excel file to be processed 


-- define here your destination SQL folder 
-- for my tests, I used a folder mySQL on my Desktop 
set SQLFolder to ((path to desktop folder) as string) & "mySQL" 

tell application "Finder" to set ForSQL to (container of Fxl) as string 

--define new name by replacing current extension (xls, xlsx, xlsm, xml) by "csv" 
tell application "Finder" 
set N to name of Fxl 
set NbExt to length of ((name extension of Fxl) as string) 
set newname to (text 1 thru -(NbExt + 1) of N) & "csv" 
end tell 

--convert to CSV and close 
tell application "Microsoft Excel" 
open Fxl 
tell workbook 1 
    tell sheet 1 to save in (ForSQL & newname) as CSV file format 
    close without saving 
end tell 
end tell 

-- add eventually your TextWrangle step here (?) 

-- delete source file and move csv to proper folder 
tell application "Finder" 
delete Fxl 
move file (ForSQL & newname) to folder SQLFolder 
end tell 

あなたがフルのAppleScriptフォルダアクションでこのすべてを実行することができます。 「フォルダ項目を追加しています...」で「選択するFxlを選択...」を置き換えます。 この場合、上記のスクリプトを繰り返しループに挿入して、フォルダ内のすべてのファイルドロップを処理する必要があります。

ただし、新しいCSVファイルを作成するとき(同じフォルダ内に!)にシステムがスクリプトを再起動するため、フォルダアクションスクリプトを使用する際に問題が発生することがあります。

私が提案している回避策は、フォルダアクションスクリプトを使用してファイルをForSQLで削除し、それを他の "temp_ForSQL"に移動し、移動したファイルを使用してこのスクリプトを実行することです。そうすることで、新しいフォルダアクションスクリプトを起動することなく、cvsがtemp_forSLQに追加されます。

私はそれが十分明確であることを願っています...もしそうでなければ、私に知らせてください。

+0

ありがとうございました!それに沿って試して試してみてください。 automatorフォルダのアクションをもう使用しないでください。もしそうでなければ、私のダウンロードフォルダにヒットしたときに 'フォルダアイテムの追加時に'を追加するだけです。また、同じフォルダにCSVを作成しているので、変換前にファイルをSQLフォルダに移動することはありません。最後に、私はまだこれを動作させていませんが、Automatorスクリプトの主な問題は、Excel 2016のMac用の「アクセス許可」ページがポップアップしてしまったことです。それもこのコードで消えてしまったのですか? – Ryan

+0

また、TextWranglerの部分は、ファイルがUTF-8にとどまっていることを確認していたため、何らかの理由でOS Romanに変更されているものがあることに気付きました。しかし、それがExcelで発生する可能性がある場合、私はそのステップを必要としません - 他の方法でそれを理解できませんでした。 – Ryan

+0

これでこれまで遊んでいて、エラー "エラー"が続いていますMicrosoft Excelにエラーがありました:パラメータエラー "number -50"コードがCSVファイル形式で '(sql&newname)に保存されます。どうやらこれは多少の既知の問題ですか? http://www.mac-help.com/threads/automator-wont-convert-to-csv.221267/私のAutomatorのスクリプトは一般的に働いていました。私は自動化を台無しにしていました。 – Ryan

関連する問題