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

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

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

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

Q&A

解決済

1回答

2714閲覧

pythonで印刷の枚数を指定したい

qcdefg

総合スコア4

Python

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

0グッド

1クリップ

投稿2020/01/23 14:20

編集2020/01/27 09:06

前提・実現したいこと

(1)エクセル1のシートから特定のセルの値を読み取る
(2)エクセル2のシートへ(1)で読み取ったセルの値を書き込む
(3)書き込んだエクセル2のシートを1枚印刷する

(3)の工程で印刷枚数が10枚で出てくるので、枚数を指定する方法を探しています。

発生している問題・エラーメッセージ

(1),(2)は問題なくできました。
(3)も印刷はできるのですが枚数が1枚ではなく10枚で出てきます。

エラーメッセージ

該当のソースコード

ソースコード import win32api import win32print import xlrd import os import openpyxl as px os.chdir("C:\Users\ユーザー名\Documents\PythonScripts") wb = xlrd.open_workbook('読み取りたいシート.xlsx') sheet = wb.sheet_by_name(wb.sheet_by_index(0).name) x=0;y=0; tyuuban= sheet.cell(x, y).value while tyuuban != "注文番号": y +=1 tyuuban = sheet.cell(x, y).value#cellに更新後の値を入れなければならない x=x+1 tyuuban = sheet.cell(x, y).value tyuuban = round(tyuuban)#.0が入るので消すための一行 book = px.load_workbook('書き込みたいシート.xlsx')#xlsをxlsxに変更するときには一度ファイルを開いて名前を付けて保存の時に拡張子を変えること、単にプロパティから変えてもダメみたい ws = book.active ws['D6'].value = tyuuban x=0;y=0; hinmei = sheet.cell(x, y).value while hinmei != "品名": y +=1 hinmei = sheet.cell(x, y).value#cellに更新後の値を入れなければならない x=x+1 hinmei = sheet.cell(x, y).value ws["D8"].value = hinmei x=0;y=0; daisu = sheet.cell(x, y).value while daisu != "注文数量": y +=1 daisu = sheet.cell(x, y).value#cellに更新後の値を入れなければならない x=x+1 daisu = sheet.cell(x, y).value daisu = round(daisu) ws["T7"].value = str(daisu)+"台" book.save('test.xlsx') #印刷指示 filename = 'test.xlsx' open(filename, "r") win32api.ShellExecute( 0, "print", filename, "/d:""%s" % win32print.GetDefaultPrinter(), ".", 0 )

試したこと

印刷側の設定の確認(1部設定になっているか)

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

meg_

2020/01/23 14:31

コードは「コードの挿入」で記入してください。
meg_

2020/01/23 14:49

エクセルで「印刷プレビュー」等で確認した場合は、1枚だけの印刷設定になっているのでしょうか?
qcdefg

2020/01/24 03:46

実際の環境で確認しましたが、一枚だけの印刷になっています
hayataka2049

2020/01/24 10:37

win32api.ShellExecute以降が完全ではないようです。コード末尾まで載せてください。
qcdefg

2020/01/24 10:49

不完全なコードを修正しました。
guest

回答1

0

自己解決

自己解決したので記します。

結論:指摘されていた通り印刷設定の問題でした。

エクセルを実際に開いてみて印刷画面にいき、プレビューやプリンタのプロパティから部数もしくは印刷枚数を確認していました。

この時、部数もしくは印刷枚数は1と表示されています。

しかしページ設定の方から部数を見ると10に設定されておりそちらが適用されていたようです。

こちらの部数を1に設定したところ、実現したいことを達成できました。

ご助力いただきありがとうございました。

投稿2020/01/28 11:14

qcdefg

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問