[PYTHON] Memorandum ((1) Kopieren und Einfügen aus einem anderen Buch (2) Siehe Vergleichstabelle mit openpyxl)

Überblick

Da ich den zweiten Schritt im vorherigen Artikel "Hinzufügen von Einstellung 1 / Einstellung 2 zu jeder Zeile mithilfe der Vergleichstabelle in Tabelle 1" implementieren konnte, werde ich ihn zusammenfassen. https://qiita.com/wellwell3176/items/7dba981b479c5933bf5f

Ergebnis

Es gelang, die in Fig. 2 gezeigten Ergebnisse automatisch aus den in Fig. 1 gezeigten Rohdaten und der Vergleichstabelle zu erzeugen. image.png Abbildung 1 Links: Rohdaten Rechts: Vergleichstabelle image.png Abbildung 2 Ergebnisse

program


import openpyxl
wb1=openpyxl.load_workbook('/content/drive/My Drive/Colab Notebooks/data3.xlsx')
ws1=wb1.active

#Bereiten Sie eine separate Vergleichstabelle als Master vor. Ich möchte den numerischen Wert von der Masterseite anstelle der Formel ziehen, also Daten_only=Öffnen Sie mit true
wb2=openpyxl.load_workbook('/content/drive/My Drive/Colab Notebooks/table.xlsx',data_only=True)
ws2=wb2.active

for i in range(12):
  for j in range(3):
    copy = ws2.cell(row = i+1, column = j+3).value
    ws1.cell(row = i+1, column =j+10,value=copy)

#Die Referenz aus einem anderen Buch lief nicht gut, also kopieren Sie die Vergleichstabelle einmal
#Reichweite ist i=Es beginnt bei 0, aber die Zeilen und Spalten beginnen bei 1, also passen Sie es an

min_row=2
max_row=ws1.max_row #Ermitteln Sie die Anzahl der Zeilen, da die Verarbeitung von der zweiten bis zur letzten Zeile angewendet wird

ws1["H1"].value="Einstellung 1"
ws1["I1"].value="Einstellung 2" #Es war schneller, die Überschrift einzugeben

for i in range(min_row, max_row):
  ws1.cell(row=i, column=7).value ="=D{}&E{}".format(i,i)
  #Geben Sie in der 7. Spalte Kategorie + Geschäft ein
  ws1.cell(row=i, column=8).value ="=INDEX($J$1:$L$12,match(G{},$J$1:$J$12,0),2)".format(i) 
  ws1.cell(row=i, column=9).value ="=INDEX($J$1:$L$12,match(G{},$J$1:$J$12,0),3)".format(i) 
  #Verwenden Sie INDEX, um die Nachschlagetabelle und Spalte 7 abzufragen. Geben Sie das Ergebnis ein

wb1.save('/content/drive/My Drive/Colab Notebooks/data4.xlsx')

Problem

・ Ich möchte die G-Spalte, J-Spalte, K-Spalte und L-Spalte in Abb. 2 löschen, da sie im nachfolgenden Prozess nicht erforderlich sind. Ich kann sie jedoch nicht löschen, da ich eine Referenz verwende.

⇨ Als Brute-Force-Lösung können Sie data4 mit data_only = true öffnen und andere Spalten als unnötige Spalten kopieren und in eine neue Datei einfügen. Ich halte dies jedoch für nutzlos.

・ Ich weiß nicht, wie ich mich auf ein anderes Buch beziehen soll

Dieses Mal habe ich den Inhalt von table.xlsx nach data4.xlsx kopiert und dann die INDEX-Funktion verwendet. Es ist besser, von Anfang an auf table.xlsx zu verweisen ... aber ich konnte keinen Weg finden, es zu beschreiben. Es wird die nächste Aufgabe sein.

Recommended Posts

Memorandum ((1) Kopieren und Einfügen aus einem anderen Buch (2) Siehe Vergleichstabelle mit openpyxl)
Bearbeiten Sie die Zwischenablage in Python und fügen Sie die Tabelle in Excel ein
Kopieren und Einfügen des Inhalts eines Blattes im JSON-Format mit einer Google-Tabelle (mithilfe von Google Colab)
In Dataflow implementiert, um die hierarchische Struktur von Google Drive in Google Cloud Storage zu kopieren
Python-Memorandum: Lesen Sie den Text und bearbeiten Sie den Dateinamen, während Sie die Zieldatei kopieren
Cisco IOS-XE erfasst Änderungen in der Routing-Tabelle und sendet sie an externe Dienste
Ich möchte die Variablen in der Python-Vorlagendatei ersetzen und in einer anderen Datei in Massenproduktion herstellen
Jedi-vim-Verknüpfungsbefehl, mit dem Sie auf die Definitionsquelle und das Definitionsziel in Python verweisen können
Ich möchte ein englisches Papier aus dem PDF-Format kopieren und in die Google-Übersetzung einfügen