Il existe plusieurs bibliothèques pour créer des fichiers Excel avec Python, mais XlsxWriter est recommandé pour les raisons suivantes.
$ pip install xlsxwriter
Exemple officiel traduit en japonais le cas échéant
Si tu écris comme ça
xlsxwriter_demo.py
#Créer de nouveaux fichiers et feuilles de calcul
workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()
#Changer la largeur de la colonne A
worksheet.set_column('A:A', 20)
#Ajout d'un format pour le rendre gras
bold = workbook.add_format({'bold': True})
#Rédaction de texte
worksheet.write('A1', 'Hello')
#Écrire du texte et appliquer la mise en forme
worksheet.write('A2', 'World', bold)
#Écrire une valeur numérique (spécifier l'adresse de la cellule avec une valeur numérique)
worksheet.write(2, 0, 123)
worksheet.write(3, 0, 123.456)
#Insérer une image
worksheet.insert_image('B5', 'logo.png')
workbook.close()
Sera comme ça
Juste une note personnelle d'ici.
Peut-être que vous pouvez le faire avec numpy, scipy, matplotlib, mais celui qui m'est venu à l'esprit était xlsxwriter. La source résultante ressemble à ceci.
sim_matrix.py
# -*- coding: utf-8 -*-
import xlsxwriter
from xlsxwriter.utility import xl_rowcol_to_cell, xl_range_abs
#Créer des classeurs et des feuilles de calcul
wb = xlsxwriter.Workbook("sim_matrix.xlsx")
ws = wb.add_worksheet("similarity matrix")
#Définir la taille de la cellule de données
for i in range(5):
ws.set_row(i, 40.5)
ws.set_column(i, i, 6.0)
#Saisie des données
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])
#Trouvez les valeurs maximale et minimale à l'exclusion des éléments diagonaux à l'aide d'une formule matricielle
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)
#Appliquer une échelle de couleurs à l'aide de la mise en forme conditionnelle
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)
#l'écriture
wb.close()
Un tel fichier est sorti.
Recommended Posts