Python et la manipulation de données dans un fichier *.xlsx
Bonjour @ tous.
Je débute sur Python, et je trouve ce langage plein de ressources intéressantes, c'est pour cette raison que je souhaite approfondir un peu le sujet.
Pour débuter, j'utilise la version 3.5 de Python et le module openpyxl qui est visiblement l'un des plus performants à l'heure actuelle pour la manipulation de fichier *.xlsx.
Ce que je souhaite faire c'est :
1/ Ouvrir un fichier Excel existant
2/ Créer un onglet vierge
3/ Parcourir le tableau en lisant la colonne B et vérifier est remplit
-- Boucle
3.1/ Si elle est remplit, je récupère les valeurs contenues dans les cellules de A à F
3.2/ Et je les colle dans le nouvel onglet
-- Fin boucle
4/ Je supprime mon onglet source pour ne garder que celui qui a les valeurs copiées
Pour le moment, les étapes de 1 à 3 sont réalisées, mais je bloque sur les suivantes, notamment sur les 3.1,3.2.
Voici le code existant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import os
import openpyxl
from openpyxl import *
wb = Workbook()
wb= openpyxl.load_workbook('testfile.xlsx')
# On active l'onglet courant
ws = wb.active
# On crée un nouvel onglet
ws1 = wb.create_sheet()
ws1.title = ws.title
# On s'apprête à parcourir la colonne B
translated = []
begrow = 1
endrow = ws.max_row
for row in ws.iter_rows('B' + format(begrow) + ':B' + format(endrow)):
for cell in row:
if cell.value is not None:
print(cell.value)
wb.save('testfile_new.xlsx')
ws.close()
xl.Quit() |
Dans l'idéal j'aurais aimé supprimer les lignes dont la colonne B est vide, mais j'ai cru lire que ce n'était pas possible, d'ou cette solution 'alambiquée'.
Auriez-vous une idée qui me permettrait d'aller au bout de ma réflexion ?
En vous remerciant par avance. :)
Geo-x