Zdaję sobie sprawę, że nie jest to pytanie całkowicie związane z Uniksem / Linuksem. Ale ponieważ jest to coś, co zrobię na Linuksie, mam nadzieję, że ktoś ma odpowiedź.
Mam plik Excel ( .xlsx
), który jest okresowo aktualizowany (przez kogoś innego). Chcę napisać skrypt i umieścić go jako cronjob w celu przetworzenia tego arkusza programu Excel. Ale żeby to zrobić, muszę przekonwertować to na plik tekstowy (więc a .csv
) z kolumnami oddzielonymi średnikami. Niestety nie można go oddzielić przecinkami, ponieważ niektóre kolumny zawierają przecinki. Czy w ogóle można wykonać tę konwersję z powłoki? Mam zainstalowany pakiet Open Office i mogę to zrobić za pomocą GUI, ale chcę wiedzieć, czy można to zrobić z wiersza polecenia. Dzięki!
PS: Mam również komputer Mac, więc jeśli jakieś rozwiązanie może tam działać, to też dobrze. :)
źródło
;
jako separator.https://github.com/dilshod/xlsx2csv
Działa dobrze dla mnie. Około 85 MB pliku XLSX przekonwertowanego po około 3 minutach na dysku Mac Book Pro SSD.
źródło
$ python xlsx2csv.py -d ";" my.xlsx my.csv
działało dobrze i możliwość zdefiniowania ogranicznika, dziękuję +!Używam xls2csv Perla do konwersji
xls
plikówcsv
.Nie jestem pewien, czy to też działa
xlsx
.O:
dlatego wprowadzono cytowanie:
źródło
awk
skrypty. A po prostu łatwiej jest przekazać średnik jako separator polaawk
. Mógłbym szukać przecinków w cudzysłowie, aby zastąpić je czymś innym ... teraz to kolejne pytanie :)Używam PHP. Wystarczy zainstalować bibliotekę PHPExel ze strony http://phpexcel.codeplex.com/ i prawdopodobnie potrzebujesz również funkcji XML.
To jest mój kod:
Możesz cofnąć proces lub użyć innego formatu Excel / CSV. Spójrz na różne pliki php w katalogu PHPExcel.
źródło