8
votes

Lecture du format .xlsx en python

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 exceptions.
Quelle est la meilleure façon de lire xlsx?
J'ai besoin de lire des commentaires dans les cellules aussi.


0 commentaires

3 Réponses :


7
votes

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.


2 commentaires

À 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.



3
votes

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)


0 commentaires

2
votes

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. PIP INSTALL INSTALL PANDAS OPENPYXL CODE>

OPTION 1: PANDAS DIRECT STRAND> P>

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>

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


0 commentaires