GNU/Linux >> Linux Esercitazione >  >> Linux

Convertire un file .xlsx (ms Excel) in .csv sulla riga di comando con campi separati da punto e virgola?

Mi rendo conto che questo non una domanda interamente relativa a unix/linux. Ma dato che questo è qualcosa che farò su Linux, spero che qualcuno abbia una risposta.

Ho un file excel online (.xlsx ) che viene aggiornato periodicamente (da qualcun altro). Voglio scrivere uno script e inserirlo come cronjob per elaborare quel foglio Excel. Ma per farlo, devo convertirlo in un file di testo (quindi un file .csv ) con colonne separate da punto e virgola. Sfortunatamente non può essere separato da virgole poiché alcune colonne contengono virgole. È possibile eseguire questa conversione dalla shell? Ho installato Open Office e posso farlo usando la sua GUI, ma voglio sapere se è possibile farlo dalla riga di comando. Grazie!

PS:ho anche una macchina Mac, quindi se qualche soluzione può funzionare lì, va bene lo stesso. 🙂

Risposta accettata:

OpenOffice viene fornito con il programma unoconv per eseguire conversioni di formato sulla riga di comando.

unoconv -f csv filename.xlsx

Per requisiti più complessi, puoi analizzare i file XLSX con Spreadsheet::XLSX in Perl o openpyxl in Python. Ad esempio, ecco uno script rapido per stampare un foglio di lavoro come file CSV separato da punto e virgola (avviso:non testato, digitato direttamente nel browser):

perl -MSpreadsheet::XLSX -e '
    $ = "n"; $, = ";";
    my $workbook = Spreadsheet::XLSX->new()->parse($ARGV[0]);
    my $worksheet = ($workbook->worksheets())[0];
    my ($row_min, $row_max) = $worksheet->row_range();
    my ($col_min, $col_max) = $worksheet->col_range();
    for my $row ($row_min..$row_max) {
        print map {$worksheet->get_cell($row,$_)->value()} ($col_min..$col_max);
    }
' filename.xlsx >filename.csv

Linux
  1. Suggerimento rapido:converti le immagini dalla riga di comando con ImageMagick

  2. Come convertire un file Excel in un file Calc dalla riga di comando?

  3. Un piccolo trucco:seleziona un file casuale o una riga nel file con shuf

  4. Visualizza file tabulare come CSV dalla riga di comando

  5. Come posso creare un file con una dimensione specifica da una riga di comando?

Comando Tail Linux con esempi

Comando Linux WC con esempi

Converti i nomi dei file in minuscolo tramite la riga di comando di Ubuntu

Come inviare un'e-mail con allegato file dalla riga di comando

Come convertire xlsx in formato CSV in Linux

Utilizzo del comando Linux mv con esempi