
Naša cela firma (a nije mala) bazirana je na Linuxu, pa smo i pored toga morali da dignemo jednu Windows mašinu upravo za to o čemu govoriš. Excel automation. Nismo ni pokušavali da radimo COM iz (u našem slučaju) Ruby-ja, već je kolega to odradio u C#-u, napravili smo to kao Windows service. Baš ta priča, učitamo već gotov template, popunimo ga iz nekog dataseta (kod nas nije direktno baza, već neki XML, ali svejedno) na osnovu nekih placeholdera u samim tabelama.
Ima tu dosta peripetija, tipa kad ne znaš unapred koliko ćeš redova/kolona dodavati, pa nešto insertuješ, pa treba da zadržiš formatiranje itd.. Radimo i neke trikove sa excel makroima koji odrade nešto nakon što se napuni tabela itd.
U svakom slučaju, pravljenje XLSX od nule nam nije vršilo posao, to je Sizifov posao provaljivati i testirati jer je MS-ova dokumentacija očajna, praktično se sve svodi na reverse engineering.