Récemment, certains faisant le traitement des données et le calcul du travail, parce que les données sont enregistrées au format .csv, à commencer à traiter directement avec Excel.
Cependant, faire son double trouver le travail, et en fait, cela ne signifie pas grand-chose, donc je pense aidé à écrire une petite poignée d'outils.
Avant juste pour voir dans un livre aussi, en utilisant Python pour gérer feuille de calcul Excel, mais ne pas regarder attentivement.
Je trouve l'information partout, essentiellement résolu les besoins quotidiens, et enfin être terminé la tâche, et donc d'écrire cet article, même si elle est un résumé, les principaux problèmes communs et des solutions du dossier de cours.
opérations Python Excel, principalement utilisés xlrd et xlwt deux bibliothèques qui xlrd lire Excel, xlwt écriture bibliothèque Excel.
Https://pypi.python.org/pypi peut être téléchargé ici. Les éléments suivants ont été enregistrés Python lire et écrire Excel.
- Python écriture Excel - xlwt
Excel est écrit en Python et difficile, de ne pas construire un classeur lui-même, mais rempli de données, mais cela est hors de portée.
Les opérations d'écriture Excel, il y a des questions difficiles, telles que l'écriture des cellules fusionnées est trop de problèmes, l'autre est écrit il y a différents styles.
Code détaillé est le suivant:
importation xlwt # Définissez le style de tableau def set_style (nom, taille, gras = Faux): style = xlwt.XFStyle () font = xlwt.Font () font.name = nom font.bold = gras font.color_index = 4 font.height = hauteur style.font = police le style retour # Ecrire Excel def write_excel (): f = xlwt.Workbook () sheet1 = f.add_sheet ( 'étudiant', cell_overwrite_ok = Vrai) row0 = colum0 = # Écrivez la première ligne pour i dans la plage (0, len (row0)): sheet1.write (0, i, row0 , Set_style ( 'Times New Roman', 220, True)) # Écrivez la première colonne pour i dans la plage (0, len (colum0)): sheet1.write (i + 1,0, colum0 , Set_style ( 'Times New Roman', 220, True)) sheet1.write (1,3, '12/12/2006') sheet1.write_merge (6,6,1,3, 'Unknown') a fusionné ligne de la cellule # sheet1.write_merge (1,2,3,3, 'les jeux') cellule fusionnée colonne # sheet1.write_merge (4,5,3,3, 'basket') f.save ( 'test.xls') si __name__ == '__main__': write_excel ()Résultats Figure:
Ici, l'utilisation de write_merge () est une brève explication, comme décrit ci-dessus: sheet1.write_merge (1,2,3,3, « jouer à des jeux »), à savoir combinés dans quatre colonnes 2 et 3, des cellules fusionnées contenu pour le « total » et définir le style. Dans lequel tous les paramètres qui sont calculés à zéro.
- Python lire Excel - xlrd
Python lire les feuilles de calcul Excel, xlwt par rapport, l'offre xlrd d'interface plus, mais le processus il y a plusieurs problèmes gênants, comme la date de lecture, la lecture du contenu de la cellule de fusion.
Jetez un oeil sur les opérations de base suivantes:
(Données du graphique)
L'idée est d'ouvrir le fichier, sélectionnez la table, lisant les rangs des matières, Lire dans le tableau de données
Code détaillé est le suivant:
importation xlrd de datetime date d'importation, datetime file = 'test3.xlsx' def read_excel (): wb = xlrd.open_workbook (nom = fichier) # fichier ouvert imprimer (wb.sheet_names ()) # Obtenir tous les noms de la table sheet1 = wb.sheet_by_index (0) # passer à travers la table d'index sheet2 = wb.sheet_by_name ( 'année') # obtenir une table par nom impression (Feuil1, Feuil2) imprimer (sheet1.name, sheet1.nrows, sheet1.ncols) rangs = sheet1.row_values (2) Ligne # acquisition de contenu = sheet1.col_values (cols 3) # Obtenir contenu de la colonne impression (lignes) imprimer (CLO) imprimer (sheet1.cell (1,0) .Value) # obtenir le contenu de la table, trois façons print (sheet1.cell_value (1,0)) print (sheet1.row (1) .value)Les résultats sont les suivants:
La question est donc, d'exploitation des résultats dans la zone rouge dans les champs ci-dessus évidemment la date de naissance, en effet flotteur peut être affiché, la surface cellulaire concomitante Gerry devrait avoir le contenu, les résultats ne peuvent pas être vides.
Ne vous inquiétez pas, nous avons toutes les solutions à ces deux problèmes:
1.Python lire le contenu de la cellule en mode date Excel
Python contenu lecture d'une cellule Excel en retour de cinq types, à savoir dans l'exemple ci-dessus ctype:
ctype: 0 vide, une chaîne de caractères, 2 nombre, trois jour, 4 boolean, 5 erreur
Ctype = 3 à savoir, la date, le temps nécessaire xlrd format de date xldate_as_tuple est traitée, d'abord déterminer la table lorsque xldate ctype = 3 pour commencer l'opération.
Code détaillé est le suivant:
importation xlrd de datetime date d'importation, datetime imprimer (sheet1.cell (1,2) .ctype) date_value = xlrd.xldate_as_tuple (sheet1.cell_value (1,2), wb.datemode) print (date_value) imprimer (date (* date_value )) imprimer (date (* date_value. ) strftime ( '% Y /% m /% d'))Les résultats sont les suivants:
2. Obtenez le contenu des cellules fusionnées
Avant l'opération, d'abord introduire l'utilisation merged_cells (), le sens de ces quatre paramètres de rendement merged_cells: (rangée, row_range, col, col_range), où