J'utilise win32com
pour charger un document Excel existant. Je suis actuellement en mesure de faire une boucle dans les feuilles et de supprimer l'habillage et l'auto-ajustement des colonnes.Charger un fichier Excel existant, modifier le niveau de zoom pour toutes les feuilles et supprimer le quadrillage
import win32com.client
excel = win32com.client.Dispatch('Excel.Application')
excel.Visible = False # I want to keep it this way
path = "C:\\Users\\username\\Documents\\DDA"
wb_new = excel.Workbooks.Open(path + '\\new_file.xlsx')
# wb_new is a file with three tabs, with one value in cell A1 each...
# ...if you want to recreate it.
active_sheets = wb_new.Sheets.Count
for i in range(0, active_sheets):
ws = wb_new.Worksheets(i + 1)
ws.Columns.WrapText = False
ws.Columns.AutoFit()
Ensuite, je voudrais ajuster le niveau de zoom et supprimer le quadrillage pour toutes les feuilles. Je n'ai pas trouvé une solution qui accomplit ceci sans faire excel.Visible = True
. Je suis ouvert à l'utilisation d'un paquet de python-excel.org mais je n'ai rien trouvé.
Je suis tombé sur le sous-paquet openpyxl.worksheet.views
qui contient la classe SheetView
, mais cela ne semble pas être utile pour les documents existants.
'AttributeError: la propriété ' .Zoom' ne peut pas être set' est le résultat de' ws.Zoom = '75' –
AttributeError: la propriété ' .DisplayGridlines' ne peut pas être set.' est le résultat de 'ws.DisplayGridlines = False' –
Désolé, cette propriété doit être définie via un objet' Window', c'est-à-dire 'excel.ActiveWindow.Zoom = 75' et' excel.ActiveWindow.DisplayGridlines = False'. – Squall