← Összes eszköz

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
ExcelAz az érték, amit az Excel a Formátum → Oszlopszélesség ablakban mutat (karakterben)
NPOIA sheet.SetColumnWidth(col, n) értéke, a karakter 1/256-od részében
pxSzé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

  1. Töltsd le az ExcelColumnWidth.oxt fájlt a legfrissebb kiadásból. Pontosan ezt a fájlnevet hagyd meg.
  2. 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
  3. 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.