[11]
KONWERTER XLSX → WORD
▓ TIER B · ROK 2026 · STATUS: DZIAŁA · JĘZYKI: TYPESCRIPT
Katalog szkoleń XLSX → Word ze stopkami per handlowiec, hurtem do ZIP
[FIG. 1] MISJA
Wewnętrzne narzędzie dla firmy szkoleniowej: zamienia katalog szkoleń z arkusza XLSX na sformatowane dokumenty Word z indywidualną stopką handlowca. SPA w React + Vite bez backendu — parsuje arkusz biblioteką `xlsx` (mapowanie kolumn po indeksie z fallbackiem po nagłówku), pokazuje wyszukiwalną listę produktów, a eksport robi chirurgicznie na surowym OOXML: podmienia `sectPr` dokumentu na zerowo-marginesowy `sectPr` stopki (PizZip), żeby pływające tabele i tło PNG trafiły co do piksela. Batch-export zaznaczonych produktów pakuje osobne pliki `.docx` do jednego ZIP-a. Odpalane przez `.vbs`/`.ps1`, więc nietechniczny użytkownik nie dotyka terminala.
[FIG. 2] ARCHITEKTURA
najedź na blok, by zobaczyć opis
[FIG. 2A] CHIRURGIA XML
oferta.docx → word/document.xml · PizZip · PACJENT OTWARTY
<w:body>
<w:p>…treść produktu z arkusza…</w:p>
− <w:sectPr>
− <w:pgMar w:top="1440" w:bottom="1440"/>
− </w:sectPr>
+ <w:sectPr>
+ <w:pgMar w:top="0" w:bottom="0"/>
+ <w:footerReference r:id="rId7"/>
+ </w:sectPr>
</w:body>
→ najedź na linię diffu, by zobaczyć, czemu to chirurgia, a nie re-render
[FIG. 3] WYZWANIA
[+][CH-01]
Wierne osadzenie stopki — zamiast re-renderu, chirurgiczna podmiana `sectPr` i merge XML w `.docx`, żeby pływające tabele i tło PNG trafiły co do piksela.
[+][CH-02]
Nieregularny arkusz — mapowanie kolumn po indeksie z fallbackiem po słowach-kluczach nagłówka (pomijane A/B, dane dodatkowe X–AC tylko gdy niepuste).
[+][CH-03]
Batch bez marnowania I/O — szablon pobierany raz przed pętlą, współdzielony przez eksport pojedynczy i hurtowy; zaznaczone eksportują się też, gdy ukryje je filtr.
[FIG. 4] WARSTWA AI
Katalog szkoleń XLSX → Word ze stopkami per handlowiec, hurtem do ZIP
[FIG. 5] GALERIA
SCREENY W DRODZE — patrz SHOTS-WANTED