Ich habe in Python ein Tool erstellt, das mit der rechten Maustaste auf eine Excel-Datei klickt und diese für jedes Blatt in Dateien unterteilt.

Hintergrund Zweck

Ich erhielt die Anfrage, jedes Blatt in eine Excel-Datei aufzuteilen. Ursprünglich denke ich, dass es sich um ein VBA-Projekt handelt, aber es ist mühsam, die Excel-Datei zu öffnen und das Makro zu starten. Oder besser gesagt, ich möchte überhaupt nicht VBA schreiben. Daher möchte ich in Python ein Tool erstellen, das mit der rechten Maustaste auf eine Excel-Datei klickt und diese für jedes Blatt in Dateien unterteilt.

Installieren einer externen Bibliothek

Sie benötigen eine Bibliothek für die Arbeit mit Excel und eine Bibliothek zum Erstellen von Dateipfaden. Es ist nicht Standard, also installieren Sie es im Voraus.

$ pip install win32com.client
$ pip install pathlib
$ pip install openpyxl

Code

excel_split.py


import os
import glob
import win32com.client
import pathlib
import openpyxl
import sys

excel_dir = pathlib.Path(sys.argv[1]).parent #Pfad des Ordners, in dem die Zieldatei Excel gespeichert ist
input_file = str(sys.argv[1]) #Konvertieren Sie den Excel-Dateipfad in eine Zeichenfolge

#Holen Sie sich eine Liste der Blätter(Verwenden Sie openpyxl)
book = openpyxl.load_workbook(input_file)
sheets_list = book.sheetnames

for i in range(len(sheets_list)):

    #Starten Sie Excel
    app = win32com.client.Dispatch("Excel.Application")
    app.Visible = False
    app.DisplayAlerts = False

    #Arbeitsmappe in Excel importieren
    sheet_no = i + 1 #Das Excel-Blatt addiert 1 für 1 Start
    book = app.Workbooks.Open(input_file)
    book.WorkSheets(sheet_no).Activate()
    new_book = app.Workbooks.Add()

    #Speichern Sie für jedes Blatt
    new_file = sheets_list[i] + '.xlsx'
    path_obj = pathlib.Path(excel_dir, new_file) #In Pfadobjekt konvertieren
    output_file = path_obj.resolve() #In absoluten Pfad konvertieren
    book.Worksheets(sheet_no).Copy(Before=new_book.Worksheets(1)) #Kopieren Sie das angegebene Blatt in eine neue Excel-Datei
    new_book.SaveAs(str(output_file)) #Datei speichern

    #Beenden Sie Excel
    app.Quit()

Erstellen einer Fledermausdatei

Die py-Datei wird nicht abgelegt, wenn sie im sendto-Ordner abgelegt wird. Erstellen Sie eine Bat-Datei, um die erstellte Datei excel_split.py zu starten. * PowerShell ist ebenfalls akzeptabel.

excel_split.bat


python \\Wo soll die Python-Datei gespeichert werden?\excel_split.py

Im Sendto-Ordner speichern

Speichern Sie die erstellte bat-Datei im sendto-Ordner. Der sendto-Ordner kann angezeigt werden, indem Sie gleichzeitig die Tasten [Win] und [R] drücken und "Shell: sendto" in das Suchfeld eingeben.

Wie benutzt man

Klicken Sie mit der rechten Maustaste auf eine Excel-Datei → Senden → Klicken Sie auf excel_split.bat, um eine Datei für jedes Blatt in dieser Excel-Datei zu erstellen. 無題.png

Ergänzung: Wenn Sie in EXE konvertieren und an Benutzer verteilen möchten

Wenn Sie es an Benutzer verteilen möchten, können Sie es ohne Bat-Datei starten, indem Sie die EXE-Version ebenfalls in den sendto-Ordner legen. Der folgende Artikel stellt die Methode der EXE-Konvertierung vor.

https://qiita.com/sw1394/items/2123fa9aaecb766657e5

Recommended Posts

Ich habe in Python ein Tool erstellt, das mit der rechten Maustaste auf eine Excel-Datei klickt und diese für jedes Blatt in Dateien unterteilt.
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Ein Python-Programm, das die Größe eines Videos ändert und es in ein Bild verwandelt
Ich habe eine Python-Wörterbuchdatei für Neocomplete erstellt
Teilen Sie jede PowerPoint-Folie in eine JPG-Datei und geben Sie sie mit Python aus
[Python] Ich habe ein Skript erstellt, das Dateien auf dem lokalen PC automatisch ausschneidet und auf eine externe SSD einfügt.
Ich habe eine VM erstellt, auf der OpenCV für Python ausgeführt wird
Eine Funktion, die iterable in Python in N Teile unterteilt
Ich habe ein automatisiertes Programm zum Einfügen von Squishy in Excel erstellt
Erstellt einen Toolsver, der Betriebssystem, Python, Module und Toolversionen an Markdown ausspuckt
Ich habe ein Tool erstellt, mit dem das Erstellen und Installieren eines öffentlichen Schlüssels etwas einfacher ist.
Ich habe ein Skript in Python erstellt, um eine Textdatei für JSON zu konvertieren (für das vscode-Benutzer-Snippet).
Erstellt ein Tool, mit dem Sie bequem Parameter für Modelle des maschinellen Lernens festlegen können
Code und Lehren für Funktionen, die spezielle Windows-Ordner in Python3-ctypes öffnen
Python> Ich habe einen Testcode für meine eigene externe Datei erstellt
Ich habe viele Dateien für die RDP-Verbindung mit Python erstellt
Lesen Sie die Excel-Tabelle und wiederholen Sie den Prozess zeilenweise Python VBA
Ich habe versucht, ein Gerüstwerkzeug für Python Web Framework Bottle zu erstellen
Rufen Sie die Formel in der Excel-Datei als Zeichenfolge in Python ab
[Python] Ich habe eine Klasse erstellt, die schnell einen Dateibaum schreiben kann
Ich habe einen Tri-Tree geschrieben, der für die Implementierung von Hochgeschwindigkeitswörterbüchern in D-Sprache und Python verwendet werden kann
Ich habe ein POST-Skript erstellt, um ein Problem in Github zu erstellen und es im Projekt zu registrieren
Ein Skript, das Tweets mit Python abruft, sie in einer externen Datei speichert und morphologische Analysen durchführt.
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
Derjenige, der die CSV-Datei teilt, liest und parallel verarbeitet
Ich habe ein CLI-Tool erstellt, um Bilder in jedem Verzeichnis in PDF zu konvertieren
Ich möchte einen Teil der Excel-Zeichenfolge mit Python einfärben
Ich habe ein Skript in Python erstellt, um MDD-Dateien in das Scrapbox-Format zu konvertieren
Öffnen Sie eine Excel-Datei in Python und färben Sie die Karte von Japan
Ich habe ein Tool erstellt, das die Dekomprimierung mit CLI (Python3) etwas erleichtert.
[IOS] Ich habe ein Widget erstellt, das den Trend von Qiita in Pythonista3 anzeigt. [Python]
Ich habe ein Programm erstellt, um die Größe einer Datei mit Python zu überprüfen
Ich habe ein Pay-Management-Programm in Python erstellt!
Ich habe ein Passwort-Tool in Python erstellt.
Ich habe mit Python eine Einstellungsdatei erstellt
[Python] Ich habe eine App erstellt, die automatisch die Audiodatei jedes Wortes herunterlädt, das für die Englisch-Lern-App verwendet wird.
So speichern Sie die Feature-Point-Informationen des Bildes in einer Datei und verwenden sie zum Abgleichen
Ich habe in Python ein Programm erstellt, das FX-CSV-Daten liest und eine große Anzahl von Diagrammbildern erstellt
Ich habe ein System erstellt, das automatisch entscheidet, ob es morgen mit Python ausgeführt wird, und es zu Google Kalender hinzufügt.
Ich habe ein Tool erstellt, um Slack über Connpass-Ereignisse zu informieren, und es zu Terraform gemacht
[Python, PyPDF2] Ein Skript, das ein verbreitetes PDF in zwei links und rechts unterteilt
Ich möchte ein Element mit numpy in eine Datei schreiben und es überprüfen.
[Python] Kombinieren von Listen mit Zahlen zu Zeichenfolgen und Schreiben in eine Ausgabedatei
Beachten Sie, dass ich den Algorithmus der kleinsten Quadrate verstehe. Und ich habe es in Python geschrieben.
[Python] Ich habe einen LINE-Bot erstellt, der Gesichter erkennt und Mosaikverarbeitungen durchführt.
Ich habe mit Python und BigQuery ein internes Peer-Bonus-Tool (nur Aggregation) erstellt
In Python habe ich einen LINE-Bot erstellt, der Polleninformationen aus Standortinformationen sendet.
Ein Memo, das ich schnell in Python geschrieben habe
Ich habe ein nützliches Tool für Digital Ocean erstellt
Ich habe eine Klasse in Python3 und Java geschrieben
Ich habe ein Caesar-Kryptografieprogramm in Python erstellt.
Python-Skript, das das Azure-Status-RSS crawlt und an Hipchat sendet
Ich habe ein Programm erstellt, um Bilder mit Python und OpenCV in ASCII-Grafik umzuwandeln
Ich habe ein Docker-Image erstellt, das RSS liest und automatisch regelmäßig twittert, und es veröffentlicht.
Erstellen Sie mit PyInstaller eine exe-Datei, die in einer Windows-Umgebung ohne Python funktioniert
Ein Hinweis, der einen Job in Python implementiert, der eine GCS-Datei in BigQuery lädt
Erstellt eine Web-App, die IT-Ereignisinformationen mit Vue und Flask abbildet