İdeal olarak komut satırını kullanarak birden çok .csv dosyasını tek bir çok sayfalı .xls e-tablosuna dönüştürmenin bir yolu var mı?


14

İdeal olarak komut satırını kullanarak birden çok .csv dosyasını tek bir çok sayfalı .xls e-tablosuna dönüştürmenin bir yolu var mı?

Bir cli çözümü yoksa, ideal olarak awk veya pascal içinde çalışan bir API olup olmadığını bilmek iyi olur, ancak başarısız olursa, oldukça iyi bir şeyde.


Maythux tarafından bahsedilen ssconvert, Gnumeric'e, Ubuntu Masaüstü sistemine varsayılan olarak yüklenecek, ancak sunucu sürümüne yüklenmeyecek eşlik eden bir komuttur.
10'da Arronical

Excel'in CSV'yi bir .xlsdosyaya yükleyeceği göz önüne alındığında şunları yapabilirsiniz:cat *.csv > file.xls
ash

denemek bu
Cryss

1
ssconvert hile yapar, mükemmel. İhtiyacım olan her .csv dosyasını ayrı bir sayfada bulundurmaktı. Kedi kullanmak bunu başaramaz. ssconvert yapar.
Peter Brooks

@ash csv ve xls farklı biçimlerdir, bir grup csvs dosyasını bir dosyaya yerleştirir ve yeniden adlandırmak xls hiç çalışmaz, çünkü csvs birden fazla sayfayı desteklemez, bu yüzden sadece bir uzun csv yapar ve ayrıca csv düz metin biçimidir. xls bir ikili biçimdir
chiliNUT

Yanıtlar:


16

Ssconvert komutunu kullanabilirsiniz .

ssconvert example.csv example.xls

Birden fazla dosya için bunu yapmak için csv dosyaları üzerinde bir bash döngüsü yapmanız ve işi yapmanız gerekir. İşte bir ipucu:

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

DÜZENLE:

Dönüştürmek ve tek bir xls dosyasına birleştirmek için de yine ssconvert kullanabilirsiniz.

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

veya kolayca

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

1
Değişkenleri belirtmek çok önemlidir "$i" "${i%.*}".xls, aksi takdirde boşluk içeren herhangi bir dosya adı komutu kıracaktır (ve muhtemelen ilgisiz bir dosyanın üzerine yazacaktır).
Paddy Landau
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.