Czy jest możliwe aby zapisać plik csv tak aby arkusz czy to excel czy calc scalił komórki pionowo/poziomo ?
Nie.
CSV to plik tekstowy przechowujący wartości oddzielone jakimiś separatorami, nie przechowuje żadnych informacji o formatowaniu komórek.
Tak myślałem, dzięki,
a jakieś rozwiązanie aby generować plik który otworzy się w arkuszu ze scaloną komórką ?
No to generuj plik w formacie arkusza, który obsługuje scalanie komórek.
Można generować w XML i otwierać wg zapisanego szablonu.
Można skorzystać z biblioteki openpyxl dla Pythona (wersja dla Pythona 3 tutaj).
Scalanie komórek pliku xlsx wygląda tak:
from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
ws = wb.worksheets[0]
ws.merge_cells('A1:A5')
wb.save('test_out.xlsx')
Prościej chyba się nie da. Skrypt wczytuje zawartość pierwszego arkusza pliku test.xlsx, scala komórki A1:A5 i zapisuje w pliku test_out.xlsx. Podobnie wygląda sytuacja z wierszami. Nic nie stoi na przeszkodzie, żeby tego typu operację wykonać w wielu plikach, które składają się z wielu arkuszy itd. Arkusze można też wczytywać po nazwach:
ws = wb.get_sheet_by_name(name = 'Arkusz1')
Po więcej odsyłam do dokumentacji.
Ps Openpyxl to port biblioteki PHPExcel.
mój plik csv jest generowany codziennie, i codziennie następnego dnia jest rozszerzany i zmienną ilość komórek w dół. I ta zmienna ilość musi być scalona, itak codziennie musi pamiętać te scalone komórki. Kolejne utrudnienie to konieczność nie xls a ods (open/libre office)
Zgodnie z opisem PHPExcel wspiera ods:
Reszta nie powinna być problemem.
no to nic, pozostaje wygospodarować trochę czasu i poznać PHPExcel nie wspominałem ale najbardziej mi zależało pod PHP właśnie
Dziękuję za pomoc