Libreoffice ile kodlamayı belirtin --convert-to csv


11

Excel dosyaları aşağıdakiler kullanılarak CSV'ye dönüştürülebilir:

$ libreoffice --convert-to csv --headless --outdir dir file.xlsx

Her şey gayet iyi çalışıyor. Kodlama yine de sakat bir şeye ayarlanmıştır. LibreOffice Calc'den manuel olarak "farklı kaydet" yaparsam alacağım UTF-8 mdash (-) yerine, bana bir \ 227 ( ) verir. CSV'de dosya kullanmak bana "ISO olmayan genişletilmiş ASCII metni, çok uzun satırlar" veriyor. Yani, iki soru:

  1. Burada neler oluyor?
  2. Lbreoffice'e UTF-8'e dönüşmesini nasıl söyleyebilirim?

Dönüştürmeye çalıştığım dosya burada .

Yanıtlar:


8

Görünüşe göre LibreOffice, varsayılan olarak ISO-8859-1'i kullanmaya çalışır ve bu da soruna neden olur. Bu hata raporuna yanıt olarak yeni bir parametre --infiltereklendi. Aşağıdaki komut U + 2014 em çizgi oluşturur :

libreoffice  --convert-to csv --infilter=CSV:44,34,76,1 --headless --outdir dir file.xlsx

Bunu LO 5.0.3.2 ile test ettim. Hata raporundan, bu seçeneği içeren en eski sürüm LO 4.4 gibi görünüyor.

Ayrıca bakınız: https://ask.libreoffice.org/en/question/13008/how-do-i-specify-an-input-character-coding-for-a-convert-to-command-line-usage/


Teşekkürler! Yine de başarı yok. Bu komut satırı ile: libreoffice --headless --convert-to csv --infilter = CSV: 44,34,76,1 file.xlsx --outdir dir; em tire için hala 0x97 var. Şaşkınım. Ubuntu 14.04 üzerinde LO 4.2.8.2 420m0 (Derleme: 2) kullanıyorum.
— Scott Deerwester

Cevabımda belirtildiği gibi muhtemelen LO 4.4 veya daha yeni bir sürüme geçmeniz gerekiyor.
— Jim K

1
loffice --convert-to xlsx --infilter=csv:44,34,76 input.csvbenim için çalıştı. Referans .
— Adobe

Bu infilterseçeneklerin listelendiği bir bağlantınız var mı? @Adobe tarafından gönderilen bağlantı uzun süredir eskimiş.
— kebs

--infiltergiriş dosyasıyla ilgili gibi görünüyor ve bu yüzden @Adobe komutunun (CSV girişi) çalışması ve OP komutunun (XLSX girişi) sadece bir tahmin değil
— golimar

1

Deneyebilirsin,

    $ libreoffice --convert-to \
    > csv:"Text - txt - csv (StarCalc)":"44,34,0,1,,0" \
    > --headless --outdir dir file.xlsx 

Burada çok ayrıntılı bir yardımınız var.


Yanıtınız için teşekkürler. Hala ek jetonları kabul edemiyorum. Ben -convert-to "csv: Metin - txt - csv (StarCalc): 44,34,76,1,, 0", --convert-to "csv: Metin - txt - csv (StarCalc): 44,34,76,1,1 / 2/2/2/3/2/4/2/5/2/6/2/7/2/8/2/9/1/10/3 "ve çeşitli diğer kombinasyonlar. Herhangi bir öneri?
— Scott Deerwester

csv:"Text - txt - csv (StarCalc)":"44,34,0,1,,0", csv :"çift tırnaklı" :"çift tırnaklı"
— xae

Bu sadece kabuğa göre olacak, ama yine de aynı sonuçlarla denedim.
— Scott Deerwester

İşteunoconv ve doğrudan sofficeilgili bir görev için kullanıyor olabilirsiniz, belki yardımcı olabilir.
— xae
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.