前提・実現したいこと
(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/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー