GNU/Linux >> Znalost Linux >  >> Linux

Převést soubor .xlsx (ms Excel) na .csv na příkazovém řádku pomocí polí oddělených středníkem?

Uvědomuji si, že to není otázka zcela související s unixem/linuxem. Ale protože to je něco, co budu dělat na linuxu, doufám, že někdo bude mít odpověď.

Mám online soubor Excel (.xlsx ), který je pravidelně aktualizován (někým jiným). Chci napsat skript a vložit ho jako cronjob, abych mohl zpracovat ten excelový list. Ale abych to udělal, musím to převést do textového souboru (takže .csv ) se sloupci oddělenými středníkem. Bohužel to nelze oddělit čárkou, protože některé sloupce obsahují čárky. Je vůbec možné provést tento převod ze shellu? Mám nainstalovaný Open office a mohu to udělat pomocí jeho GUI, ale chci vědět, jestli je to možné udělat z příkazového řádku. Díky!

PS:Mám také počítač Mac, takže pokud tam může fungovat nějaké řešení, je to také dobré. 🙂

Přijatá odpověď:

OpenOffice přichází s programem unoconv pro provádění převodů formátu na příkazovém řádku.

unoconv -f csv filename.xlsx

Pro složitější požadavky můžete analyzovat soubory XLSX pomocí Spreadsheet::XLSX v Perlu nebo openpyxl v Pythonu. Zde je například rychlý skript pro tisk listu jako souboru CSV odděleného středníkem (varování:netestováno, zadáno přímo v prohlížeči):

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. Rychlý tip:převádějte obrázky na příkazovém řádku pomocí ImageMagick

  2. Jak převést soubor aplikace Excel na soubor Calc z příkazového řádku?

  3. Malý trik:pomocí shuf vyberte náhodný soubor nebo řádek v souboru

  1. Import PostgreSQL CSV z příkazového řádku

  2. Jak převést PDF do JPG pomocí příkazového řádku v Linuxu?

  3. Jak nahradit soubor v jar příkazovým řádkem v linuxu?

  1. Zmenšete velikost PDF pomocí tohoto triku s příkazovým řádkem

  2. Zkopírujte a vložte na příkazový řádek Linuxu pomocí xclip

  3. Třídit příkaz v Linuxu s příklady