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.