質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2940閲覧

pythonでエクセル(.xlsm)をPDF化しても見れませんでした。

DaikiYamamoto

総合スコア0

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2020/05/02 09:16

編集2022/01/12 10:55

下記のコードでエクセル(.xlsm)をPDF化出来たのですが、
アドビで開こうとすると下記のメッセージがでて見れません。

Adobe Acrobat Reader で「.pdf」は開けませんでした。ファイルの種類がサポートされていないか、またはファイルが破損している可能性があります。例えば、電子メールの添付文章として送信され、正しくデコードされなかったことなどが考えられます。

長文になり大変申し訳ございません。
問題解決方法のご教授をお願いいたします。

もしPDFへの変換コードが必要な場合にはそのコードもご教授頂けると幸いです。

import openpyxl import datetime from openpyxl.worksheet.datavalidation import DataValidation wb = openpyxl.load_workbook("C:/Users/questionnaire.xlsm",keep_vba=True) ws = wb['Sheet1'] today1= datetime.date.today() today2= "{0:%Y%m%d}".format(today1) ws['C5'].value = 'test' className = ws['C5'].value ws['B20'].value = '' ws['B25'].value = '' ws['B30'].value = '' pdfFile = 'C:/Users/%s_%s.pdf' % (today2,className) wb.save(pdfFile)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/05/02 10:13

・コードは「コードの挿入」で記入してください。 ・「excel」は未定義ですが何ですか? ・print()はどちらが出力されましたか?
DaikiYamamoto

2020/05/03 01:40

ご指摘ありがとうございます。 ご対応させていただきました。 print('失敗')がvscodeのターミナルに出力されます。
DaikiYamamoto

2020/05/03 02:37

ご教授ありがとうございます。 初心者で申し訳ありません。 よく分からないですが、直接セーブ時に拡張子を.pdfに保存してするとPDF化はされましたが 開けませんでした。 ありがとうございます。
meg_

2020/05/03 03:15

あれ?コード変えましたよね?この方法では出来ないと以前の質問https://teratail.com/questions/258217で了解されてるはずですが。 初めのコードの方が良いと思います。(変わってしまったのでたぶんですが。。)
DaikiYamamoto

2020/05/04 00:32

ご回答ありがとうございます。 やはりPDF化する何かしらのコードが必要なんですね。 模索してみます。解決方法が見つかるまで今まで通り手作業で変換しようと思います。 ありがとうございました。
meg_

2020/05/04 02:20

回答へのコメントで「エクスプローラー上で手動で拡張子.xlsmをPDFに変更すると問題なく開く」と書かれていますが本当ですか?文面から推測するとOSはWindowsかと思いますが。
DaikiYamamoto

2020/05/05 02:07 編集

ご回答ありがとうございます。 失礼いたしました。 エクセルファイルから名前を付けて保存する際に拡張子PDFを選択して保存すると、そのPDFファイルは適切に開くの間違いでした。 なお仰る通りOSはWindowsです。 お忙しい中ご指摘ありがとうございます。
meg_

2020/05/05 02:11

それであれば納得です。Pythonで処理する場合は既に同名のPDFがあると駄目なようです。
guest

回答1

0

素人ながら・・。検証してないことをお許しください。

まず、マクロファイルの拡張子でいいのか、ということ。

wb = openpyxl.load_workbook("C:/Users/questionnaire.xlsm",keep_vba=True)

エクセルで保存形式をPDF保存にしたとしてそもそも開けるのか、ということ。。

が気になりました・・・。

投稿2020/05/02 12:00

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DaikiYamamoto

2020/05/03 01:54

お忙しい中ご回答ありがとうございます。 試しに拡張子.xlsxで試みましたが同じエラーが発生します。 エクスプローラー上で手動で拡張子.xlsmをPDFに変更すると問題なく開くのでもしかすると、 pythonで編集したものが危険性が高いと判断されて開けないのかもしれません。 推測の域を出ないことをお許しください。
DaikiYamamoto

2020/05/05 02:05

上記「エクスプローラー上で手動で拡張子.xlsmをPDFに変更すると問題なく開くので」の部分ですが、 エクセルファイルから名前を付けて保存する際に拡張子PDFを選択して保存すると、そのPDFファイルは適切に開くの間違いでした。 失礼いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問