Poszerzenie kolumn w kilku plikach excela

0

Cześć, zastanawiam się czy jest jakaś metoda na poszerzenie kolumn w kilku plikach excela. Mam w jednym folderze +/- 30 plików Excela i chciałbym w każdym z nich dopasować rozmiary kolumn do tekstu (Autofit). Wiem że w openpyxl można coś takiego zrobić ale tam trzeba podać konkretny rozmiar kolumn:

ws.column_dimensions['A'].width = 15

myślałem żeby zrobić coś w stylu żeby program policzył w każdej kolumnie długość tekstu i najdłuższą dał jako rozmiar kolumny, ale może jest jakiś prostszy sposób na to.

3

Rejestracja makra w Excelu pokazuje: Columns("A:A").EntireColumn.AutoFit więc tego trzeba szukać.

0
_13th_Dragon napisał(a):

Rejestracja makra w Excelu pokazuje: Columns("A:A").EntireColumn.AutoFit więc tego trzeba szukać.

Znam Makro do tego, ale niestety mam jakiś program w Pythonie który coś robi i potrzebuje do niego dopisać kod żeby od razu też poszerzył kolumny :/

1
Paweł Gerc napisał(a):
_13th_Dragon napisał(a):

Rejestracja makra w Excelu pokazuje: Columns("A:A").EntireColumn.AutoFit więc tego trzeba szukać.

Znam Makro do tego, ale niestety mam jakiś program w Pythonie który coś robi i potrzebuje do niego dopisać kod żeby od razu też poszerzył kolumny :/

Człowieku!!! przepraszam człowieków.
google: openpyxl autofit

0
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
import os
import glob

os.chdir(r'path with your folder')
FileList = glob.glob('*.xlsx')

for i in FileList:
    wb = load_workbook(i)
    sheet = wb.active
    for column_cells in sheet.columns:
        new_column_length = max(len(str(cell.value)) for cell in column_cells)
        new_column_letter = (get_column_letter(column_cells[0].column))
        if new_column_length > 0:
            sheet.column_dimensions[new_column_letter].width = new_column_length*1.05
    print(f"Zapisuje {i}")
    wb.save(i)

nie ma czegoś takiegoo jak autofit w Pythonie, ale można zrobić taką symulacje. Nie jest to tak idealne jak autofit ale też daje rade

1 użytkowników online, w tym zalogowanych: 0, gości: 1