Poszerzenie kolumn w kilku plikach excela

Poszerzenie kolumn w kilku plikach excela
Paweł Gerc
  • Rejestracja:ponad 3 lata
  • Ostatnio:2 miesiące
  • Postów:44
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:

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

_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:16 dni
3

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Paweł Gerc
  • Rejestracja:ponad 3 lata
  • Ostatnio:2 miesiące
  • Postów:44
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 :/

_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:16 dni
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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Paweł Gerc
  • Rejestracja:ponad 3 lata
  • Ostatnio:2 miesiące
  • Postów:44
0
Kopiuj
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

edytowany 3x, ostatnio: Paweł Gerc

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.