0

ワークブックを作成し、データを書き込んで保存するスクリプトを実行しています。

スクリプトの最後に次のものがあります。

workbook.SaveAs('tempfile.xlsx')

しかし、何が起こっているのかというと、今日以前に共有ポイントサイトからExcelファイルをダウンロードした、あいまいなディレクトリに保存し続けていることです。だから私は試しました:

import os
os.chdir('C:/mydir')

次に、スクリプトを実行すると、あいまいなディレクトリに保存されます。IDLE プロンプトに os.getcwd() と入力すると、「C:/mydir」が返されます。

この節約を適切に取得する方法がわかりません。私がしようとすると:

workbook.SaveAs('C:/mydir/tempfile.xlsx')

エラーが発生します:

pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Office         Excel', "Microsoft Office Excel cannot access the file   'C:\\weird dir\\//mydir/FC424E40'. There are several possible reasons:\n\n• The file name or path does not exist.\n• The file is being used by another program.\n• The workbook you are trying to save has the same name as a currently open workbook.", 'C:\\Program Files (x86)\\Microsoft Office\\Office12\\1033\\XLMAIN11.CHM', 0, -2146827284), None)

これはおそらく簡単な修正であることはわかっていますが、わかりません。何か案は?

4

1 に答える 1

1

pywintypes (または pywin32) を使用している場合、COM API で呼び出したコマンドを Excel がどのように理解するかに縛られます。これは、python が実行されている現在のディレクトリには決してリンクされていません。現在のディレクトリがない場合、Excel は、Excel ファイルを開いた最後のディレクトリと思われるディレクトリを (独自の「最小の驚きのルール」を使用して...) 選択します。Rodrigo が提案したように、フル パスを使用して Excel に保存場所を指定することをお勧めします。

于 2013-11-14T23:31:44.237 に答える