LoginSignup
aaiskwaa
@aaiskwaa

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

exe化したらopenpyxlでloadできなくなり困っております。

解決したいこと

pyinstallerでexe化した際の、openpyxlでファイルが開けない問題を解決したいです。

外部のプログラムでエクセルファイルのフルパスをクリップボードにコピーし、
変数「excel_file_name」に格納→その変数を利用しopenpyxlでload・加工するコードを書いています。
.pyファイルで実行できたため配布用にpyinstallerでexe化したところ、フォーマットをサポートしていないというエラーが出ました。
ちなみにloadしたいファイルの拡張子は「xlsm」です。
クリップボードの内容を他のエディタなどに貼り付けても正しいことが分かっている為エスケープシーケンスの問題ではないかと考えましたが、自力で解決できませんでした。

皆様のお知恵をお貸しいただけないでしょうか。

発生している問題・エラー

openpyxl does not support .xlsm' file format, please check you can open it with Excel first. Supported formats are: .xlsx,.xlsm,.xltx,.xltm

該当するソースコード

import pyperclip
import openpyxl

#クリップボードの内容を格納
excel_file_name = pyperclip.paste()

# エクセルファイルを開く(ここでは内容を読み込むだけで保存もしないのでvbaに関するコードは無し)
wb = openpyxl.load_workbook(excel_file_name)

自分で試したこと

raw文字にする必要があるのかと思い、repr(変数名)など試しましたが同様のエラーが出ます。
また、今回開くExcelは共有フォルダ上にあるため、\\から始まるのでその影響かもと思い、仮でローカルフォルダにあるファイルも指定してみましたが駄目でした。

0

1Answer

openpyxl does not support .xlsm' file format
なので、シングルクオーテーションを含めた.xlsm'を拡張子とみなしちゃってるのでは。。。

0

Your answer might help someone💌