Il existe différents packages, mais openpyxl était le plus simple à utiliser jusqu'à présent. official document (http://openpyxl.readthedocs.io/en/default/)
import openpyxl as px
Créer un nouveau
wb = px.Workbook()
Lire les fichiers existants
wb = px.load_workbook('FILEPATH')
sauvegarder
wb.save('FILEPATH')
Siège actif
ws = wb.active
Créer une nouvelle feuille
ws = wb.create_sheet() #Créé à l'extrême droite
ws = wb.create_sheet(0) #Créé à l'extrême gauche
ws = wb.create_sheet(title='SHEETNAME') #Spécifiez le nom de la feuille
Sélectionnez dans le nom de la feuille
ws = wb.get_sheet_by_name('SHEETNAME')
Liste des noms de feuille de travail (liste)
sheetnames = wb.get_sheet_names()
Changement de nom de feuille
ws.title = 'New Title'
Écriture cellulaire
ws['A1'].value = 'Hello World'
from datetime import datetime as dt
ws.cell(row=2, column=1).value = dt.now()
Ecrire plusieurs cellules
i = 1234.5678
for row in ws.iter_rows('C1:E3'):
for cell in row:
cell.value = i
i = i * 2
Sélection de cellule (itérateur)
ws.rows
ws.columns
Sélection de lignes ou de colonnes
ws.column_dimensions['A']
ws.row_dimensions[1]
Format d'affichage
ws['A2'].number_format = 'yyyy-mm-dd hh:mm:ss'
ws['C1'].number_format = u'#,##0.00;[Red]-#,##0.00'
ws['D1'].number_format = u'_ ¥* #,##0_ ;[Red]_ ¥* -#,##0_ '
Fusion de cellules
ws.merge_cells('A5:B5')
ws.unmerge_cells('A5:B5')
ws.merge_cells(start_row=5,start_column=1,end_row=5,end_column=6)
ws.unmerge_cells(start_row=5,start_column=1,end_row=5,end_column=6)
commentaire
from openpyxl.comments import Comment
ws['C1'].comment = Comment(
'This is the comment text',
'Comment Author'
)
ws['C1'].comment.text #Contenu du commentaire
ws['C1'].comment.author #Créateur de commentaires
Police de caractère
from openpyxl.styles import Font
ws['A1'].font = Font(
name='Calibri',
size=12,
bold=True,
italic=False,
color='FF000000'
)
Modèle de cellule
from openpyxl.styles import PatternFill
ws['A1'].fill = PatternFill(
fill_type=None,
start_color='FFFFFFFF',
end_color='FF000000'
)
Bordure de cellule
from openpyxl.styles import Border, Side
#Enceinte
ws['B10'].border = Border(
outline=True,
left=Side(style='thin', color='FF000000'),
right=Side(style='thick', color='FF000000'),
top=Side(style='mediam, color='FF000000'),
bottom=Side(style=None, color='FF000000')
)
#Diagonale
ws['B12'].border = Border(
outline=True,
diagonalUp=True,
diagonalDown=True,
diagonal=Side(style=None, color='FF000000')
)
style = [
'dashDot', 'dashDotDot', 'dashed', 'dotted',
'double', 'hair',
'medium', 'mediumDashDot', 'mediumDashDotDot', 'mediumDashed',
'slantDashDot',
'thick', 'thin'
]
Méthode d'affichage des caractères de la cellule
from openpyxl.styles import Alignment
ws['A1'].alignment = Alignment(
wrap_text=False, #Saut de ligne enveloppant
horizontal='general', #Position horizontale
vertical='bottom' #Position verticale
)
Recommended Posts