Czy istnieje sposób, najlepiej za pomocą wiersza polecenia, na konwersję wielu plików .csv w jeden arkusz kalkulacyjny .xls zawierający wiele arkuszy?


14

Czy istnieje sposób, najlepiej za pomocą wiersza polecenia, na konwersję wielu plików .csv w jeden arkusz kalkulacyjny .xls zawierający wiele arkuszy?

Jeśli nie ma rozwiązania cli, dobrze byłoby wiedzieć, czy istnieje interfejs API, który działa, najlepiej w awk lub pascal, ale w przeciwnym razie w całkiem dobrze.


ssconvert, wspomniany przez Maythux, jest poleceniem towarzyszącym Gnumericowi, które zostanie domyślnie zainstalowane w systemie Ubuntu Desktop, ale nie w wersji serwerowej.
Arroniczny

Biorąc pod uwagę fakt, że Excel załaduje CSV do .xlspliku, możesz po prostu zrobić:cat *.csv > file.xls
ash

spróbuj tego
Lety

1
ssconvert doskonale sobie radzi. Potrzebowałem tylko pliku .csv w osobnym arkuszu. Używanie kota tego nie osiąga. robi ssconvert.
Peter Brooks,

@ash csv i xls mają różne formaty, catting kilka plików csv do pliku i zmiana jego nazwy xls w ogóle nie będzie działać, ponieważ csvs nie obsługuje wielu arkuszy, więc utworzy tylko jeden długi csv, a także ponieważ csv jest formatem zwykłego tekstu, podczas gdy xls to format binarny
chiliNUT

Odpowiedzi:


16

Możesz użyć polecenia ssconvert .

ssconvert example.csv example.xls

Aby to zrobić dla wielu plików, musisz wykonać pętlę bash nad plikami csv i wykonać zadanie. Oto wskazówka:

for i in *.csv; do ssconvert "$i" "${i%.*}".xls; done

EDYTOWAĆ:

Aby przekonwertować i scalić w jeden plik xls, nadal możesz użyć ssconvert.

ssconvert --merge-to=output.xls file1.csv file2.csv ....

lub łatwo

ssconvert --merge-to=output.xls *.csv 

1
Ważne jest, aby zacytować zmienne, ponieważ "$i" "${i%.*}".xlsw przeciwnym razie każda nazwa pliku zawierająca spację złamie polecenie (i potencjalnie nadpisze niepowiązany plik).
Paddy Landau
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.