Excel oszlopszélességek LibreOffice Calcban
Ha NPOI-jal, Apache POI-jal vagy openpyxl-lel generálsz .xlsx fájlokat, és LibreOffice-ban ellenőrzöd őket, ismered a gondot: a Calc centiméterben mutatja az oszlopszélességet, az Excel karakterben. Ez a bővítmény élőben mutatja az Excel értéket, és be is lehet állítani vele.
Mit mutat?
Egy kis panel követi a kijelölést, és frissül, amikor átméretezed az oszlopokat:
┌ Excel column width ──────────────────┐
│ C │
│ Excel 8.43 NPOI 2340 64 px │
│ │
│ Set Excel: [ 8.43 ] [Apply] [Refresh]│
└──────────────────────────────────────┘
| Mező | Jelentés |
|---|---|
| Excel | Az az érték, amit az Excel a Formátum → Oszlopszélesség ablakban mutat (karakterben) |
| NPOI | A sheet.SetColumnWidth(col, n) értéke, a karakter 1/256-od részében |
| px | Szélesség pixelben, 96 DPI mellett |
Több oszlop kijelölésekor mindegyik szélességét látod. Átméretezéshez írj be egy Excel szélességet (8.43 vagy 8,43) a Set Excel mezőbe, és nyomj Entert.
Telepítés
- Töltsd le az
ExcelColumnWidth.oxtfájlt a legfrissebb kiadásból. Pontosan ezt a fájlnevet hagyd meg. - LibreOffice-ban nyisd meg a Tools → Extension Manager → Add… menüt (magyar felületen: Eszközök → Kiterjesztések), és válaszd ki a fájlt, vagy zárt LibreOffice mellett:
unopkg add ExcelColumnWidth.oxt - Indítsd újra a LibreOffice-t.
Ubuntun és Debianon a Python makrókhoz kell egy plusz csomag: sudo apt install libreoffice-script-provider-python
A panelt a Ctrl+Shift+W billentyűkkel, a szalagos felületen az Extension fülről, vagy a Tools → Add-Ons → Excel Column Width menüből nyithatod meg.
Miért nem 20 az Excelben a SetColumnWidth(col, 20 * 256)?
Az Excel az alapértelmezett betűtípus legszélesebb számjegyéhez méri a szélességet: Calibri 11pt-nél ez 7 px. A felületen ráadásul 5 px margót is hozzáad. Vagyis:
Excel (UI) = (px − 5) / 7
NPOI érték = trunc(px * 256 / 7)
Ezért 8.43 az alapértelmezett oszlop az Excelben, de 2340 NPOI-ban, és ezért lesz a 20 * 256 nagyjából 19.29. A bővítmény elvégzi helyetted ezt a számolást.
A 7 px-es számjegyszélesség Calibri 11pt-hez és Carlitóhoz helyes. Más alapértelmezett betűtípushoz módosítsd a MDW_PX értéket a src/python/excel_width.py fájlban.