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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

8450閲覧

Python openpyxl を使用した activesheet の選択について

ocome85

総合スコア33

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/07/18 01:03

編集2019/07/18 01:06

Excel 2010
OS windows10

Excelのアクティブシートを印刷する処理を行おうとしています。

元の開いた時のアクティブシートがSheet1で、
Sheet2をアクティブにしてSheet2のみを印刷行おうとしているのですが、
元のアクティブシート Sheet1 も印刷されてしまいます。
この原因と対処方法はあるのでしょうか。

Python

1import win32api 2import win32print 3import openpyxl as px 4 5wb = px.load_workbook('C:\j.xlsx') 6wb.active = wb.sheetnames.index("Sheet2") 7#wb.deactive = wb.sheetnames.index("Sheet1") 8print(wb.deactive) 9wb.save('C:\j.xlsx') 10filename = ("C:\j.xlsx") 11 12open(filename, "r") 13 14win32api.ShellExecute( 150, 16"print", 17filename, 18"/d:""%s" % win32print.GetDefaultPrinter(), 19".", 200 21)

deactive を指定してみましたが何も変わりませんでした。

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下のコードでうまくいくと思います。

python

1import win32api 2import win32print 3import openpyxl as px 4 5#wbはファイル全体を指す 6wb = px.load_workbook('C:\j.xlsx') 7#wb2はSheet2だけを指す 8wb2=wb["Sheet2"] 9 10#Sheet2だけをセーブ 11#ファイル名が元ファイルと同じだと、上書きになりSheet1が消えてしまうので注意) 12filename = "C:\j.xlsx" 13wb2.save(filename) 14 15 16open(filename, "r") 17 18win32api.ShellExecute( 190, 20"print", 21filename, 22"/d:""%s" % win32print.GetDefaultPrinter(), 23".", 240 25)

上手くいかなかった原因としては、wbの中身を把握していなかったことです。

質問にあるコードの場合だと、

python

1wb = px.load_workbook('C:\j.xlsx') 2wb.active = wb.sheetnames.index("Sheet2") 3#wbとwb.activeは別物 4 5#Sheet2を指しているのはwb.activeなのに、wbをsaveしている 6wb.save('C:\j.xlsx')

投稿2019/07/20 07:11

amahara_waya

総合スコア1029

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

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

ocome85

2019/08/01 08:05

返信大変遅くなりました。 理解できました。ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問