Es gibt mehrere Bibliotheken zum Erstellen von Excel-Dateien mit Python, aber XlsxWriter wird aus folgenden Gründen empfohlen.
$ pip install xlsxwriter
Offizielles Beispiel entsprechend ins Japanische übersetzt
Wenn du so schreibst
xlsxwriter_demo.py
#Erstellen Sie neue Dateien und Arbeitsblätter
workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()
#Ändern Sie die Breite von Spalte A.
worksheet.set_column('A:A', 20)
#Format hinzugefügt, um es fett zu machen
bold = workbook.add_format({'bold': True})
#Text schreiben
worksheet.write('A1', 'Hello')
#Text schreiben und Formatierung anwenden
worksheet.write('A2', 'World', bold)
#Schreiben Sie einen numerischen Wert (geben Sie die Zellenadresse mit einem numerischen Wert an)
worksheet.write(2, 0, 123)
worksheet.write(3, 0, 123.456)
#Bild einfügen
worksheet.insert_image('B5', 'logo.png')
workbook.close()
Wird so sein
Nur eine persönliche Notiz von hier.
Vielleicht kannst du es mit numpy, scipy, matplotlib machen, aber derjenige, der mir in den Sinn kam, war xlsxwriter. Die resultierende Quelle sieht so aus.
sim_matrix.py
# -*- coding: utf-8 -*-
import xlsxwriter
from xlsxwriter.utility import xl_rowcol_to_cell, xl_range_abs
#Erstellen Sie Arbeitsmappen und Arbeitsblätter
wb = xlsxwriter.Workbook("sim_matrix.xlsx")
ws = wb.add_worksheet("similarity matrix")
#Festlegen der Datenzellengröße
for i in range(5):
ws.set_row(i, 40.5)
ws.set_column(i, i, 6.0)
#Dateneingabe
data = [[1.00, 0.15, 0.09, 0.01, 0.02],
[0.15, 1.00, 0.12, 0.06, 0.03],
[0.09, 0.12, 1.00, 0.08, 0.01],
[0.01, 0.06, 0.08, 1.00, 0.05],
[0.02, 0.03, 0.01, 0.05, 1.00]]
for i in range(5):
for j in range(5):
ws.write_number(i, j, data[i][j])
#Finden Sie die Maximal- und Minimalwerte ohne diagonale Elemente mithilfe einer Array-Formel
data_field = xl_range_abs(0, 0, 4, 4)
ws.write_string(0, 6, "max sim")
max_formula = '{{=MAX(IF(ROW({0})=COLUMN({0}),"",{0}))}}'.format(data_field)
ws.write_formula(0, 7, max_formula)
ws.write_string(1, 6, "min sim")
min_formula = '{{=MIN(IF(ROW({0})=COLUMN({0}),"",{0}))}}'.format(data_field)
ws.write_formula(1, 7, min_formula)
#Wenden Sie die Farbskala mit bedingter Formatierung an
max_cell = xl_rowcol_to_cell(0, 7, row_abs=True, col_abs=True)
min_cell = xl_rowcol_to_cell(1, 7, row_abs=True, col_abs=True)
props = {
"type": "2_color_scale",
"max_color": "#FF6347", # tomato
"min_color": "#FFFFE0", # lightyellow
"max_type": "formula",
"min_type": "formula",
"max_value": max_cell,
"min_value": min_cell}
ws.conditional_format(0, 0, 4, 4, props)
#Schreiben
wb.close()
Eine solche Datei wird ausgegeben.
Recommended Posts