Je dois lire le fichier .xlsx tous les 10min de Python.
Quel est le moyen le plus efficace de faire cela?
J'ai essayé d'utiliser XLRD, mais il ne lit pas .xlsx - selon la documentation qu'il fait, mais je ne peux pas faire cela - obtenir le format non pris en charge ou le fichier corrompu code> exceptions.
Quelle est la meilleure façon de lire xlsx?
J'ai besoin de lire des commentaires dans les cellules aussi. P>
3 Réponses :
XLRD n'a pas encore publié la version pour lire XLSX. Jusque-là, Eric Gazoni construit un package appelé OpenPyXL - lit les fichiers XLSX et l'écriture limitée d'eux. P >
À partir de la version 0.8.0 (août 2012), XLRD a été en mesure de lire des fichiers .xlsx.
Remarque: XLRD ne prend plus en charge XLSX au moment de la rédaction.
Utilisez OPENYXL Quelques exemples de base:
import openpyxl # Open Workbook wb = openpyxl.load_workbook(filename='example.xlsx', data_only=True) # Get All Sheets a_sheet_names = wb.get_sheet_names() print(a_sheet_names) # Get Sheet Object by names o_sheet = wb.get_sheet_by_name("Sheet1") print(o_sheet) # Get Cell Values o_cell = o_sheet['A1'] print(o_cell.value) o_cell = o_sheet.cell(row=2, column=1) print(o_cell.value) o_cell = o_sheet['H1'] print(o_cell.value) # Sheet Maximum filled Rows and columns print(o_sheet.max_row) print(o_sheet.max_column)
Il y a plusieurs façons de lire des fichiers formatés XLSX à l'aide de Python . Deux sont illustrés ci-dessous et exigent que vous installiez au moins OpenPyXL au moins et si vous souhaitez analyser directement des pandas, vous souhaitez installer des pandas, par exemple. Cas d'utilisation principale: charge uniquement les données pour un traitement ultérieur. P> Utiliser Read_excel () Fonction Pandas serait votre meilleur choix. Notez que les pandas devraient revenir automatiquement à OpenPyxl, mais en cas de problème de format, il est préférable de spécifier le moteur directement. P> PIP INSTALL INSTALL PANDAS OPENPYXL CODE>
from openpyxl import load_workbook
wb = load_workbook(filename = "path/file_name.xlsx")
ws = wb.active
ws["A1"].comment # <- loop through row & columns to extract all comments