Excel-Arbeitsmappe mit Python drucken

Angenommen, ich habe eine Excel-Datei excel_file.xlsx und ich möchte es an meinen Drucker mit Python senden, damit ich benutze:

 import os os.startfile('path_to_file','print') 

Mein Problem ist, dass dies nur das erste Blatt der Excel-Arbeitsmappe druckt, aber ich möchte alle Blätter gedruckt. Gibt es eine Möglichkeit, die gesamte Arbeitsmappe zu drucken?

  • Python: Umwandlung von ISO-8859-1 / latin1 nach UTF-8
  • Zuverlässige Handhabung von Nicht-ASCII-Zeichen in Python?
  • Beste Weg, um unbekannte Unicoding-Codierung in Python 2.5 zu dekodieren
  • Drucken in Stdout mit Codierung in Python 3
  • Python Character Encoding Europäische Akzente
  • Wie bekomme ich portugiesische Zeichen in Python?
  • Außerdem habe ich Openpyxl benutzt, um die Datei zu erstellen, aber es scheint keine Möglichkeit zu haben, die Anzahl der Blätter zum Drucken auszuwählen.

    Jede Hilfe wäre sehr dankbar.

    EDIT —– Bisher scheint es die einzige Antwort, die ich finden konnte, war, eine temporäre Arbeitsmappe für jedes Blatt in excel_file.xlsx zu erstellen und sie nacheinander zu drucken. Aber es ist nicht sehr effizient. Ich werde weiter suchen und aktualisieren, wenn ich eine bessere Lösung finde.

  • Wie kann man einen ungültigen C-Escaped-String mit einem regulären Ausdruck erkennen?
  • Wann sollte ich in Djangos Schablonensystem entkommen und sicher sein?
  • Wie speichert man einen String, der sowohl ein einzelnes Zitat (') als auch ein doppeltes Zitat (") in python enthält
  • Python 3: Wie bekomme ich eine String-Literal-Darstellung eines Byte-Strings?
  • In Python ist es möglich, Zeilenumbrüche beim Drucken eines Strings zu entgehen?
  • Entkommen html in python
  • 2 Solutions collect form web for “Excel-Arbeitsmappe mit Python drucken”

     from xlrd import open_workbook from openpyxl.reader.excel import load_workbook import os import shutil path_to_workbook = "/Users/username/path/sheet.xlsx" worksheets_folder = "/Users/username/path/worksheets/" workbook = open_workbook(path_to_workbook) def main(): all_sheet_names = [] for s in workbook.sheets(): all_sheet_names.append(s.name) for sheet in workbook.sheets(): if not os.path.exists("worksheets"): os.makedirs("worksheets") working_sheet = sheet.name path_to_new_workbook = worksheets_folder + '{}.xlsx'.format(sheet.name) shutil.copyfile(path_to_workbook, path_to_new_workbook) nwb = load_workbook(path_to_new_workbook) print "working_sheet = " + working_sheet for name in all_sheet_names: if name != working_sheet: nwb.remove_sheet(nwb.get_sheet_by_name(name)) nwb.save(path_to_new_workbook) ws_files = get_file_names(worksheets_folder, ".xlsx") # Uncomment print command for f in xrange(0, len(ws_files)): path_to_file = worksheets_folder + ws_files[f] # os.startfile(path_to_file, 'print') print 'PRINT: ' + path_to_file # remove worksheets folder shutil.rmtree(worksheets_folder) def get_file_names(folder, extension): names = [] for file_name in os.listdir(folder): if file_name.endswith(extension): names.append(file_name) return names if __name__ == '__main__': main() 

    Wahrscheinlich nicht der beste Ansatz, aber es sollte funktionieren. Als Workaround kannst du separate .xlsx-Dateien erstellen, bei denen jeder nur eine Tabellenkalkulation hat und sie dann mit os.startfile(path_to_file, 'print')

    Sie können vBa auf open () -Befehl einbetten, um die Excel-Datei auf einen Standarddrucker zu drucken, indem Sie das in diesem Artikel erwähnte xlsxwriter-Dienstprogramm verwenden: PBPYthons Einbetten von vBA in Excel

    Python ist die beste Programmiersprache der Welt.