Libreoffice --convert-to csv के साथ एन्कोडिंग निर्दिष्ट करें


11

एक्सेल फ़ाइलों का उपयोग करके CSV में बदला जा सकता है:

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

सब कुछ ठीक काम करने के लिए प्रकट होता है। एन्कोडिंग, हालांकि, winky कुछ करने के लिए सेट किया गया है। UTF-8 mdash (-) के बजाय जो मुझे मिलता है अगर मैं लिबर ऑफिस Calc से मैन्युअल रूप से "सेव" करता हूं, तो यह मुझे एक \ 227 ( ) देता है। CSV पर फ़ाइल का उपयोग करने से मुझे "गैर-आईएसओ विस्तारित-एएससीआईआई पाठ मिलता है, जिसमें बहुत लंबी लाइनें होती हैं"। तो, दो सवाल:

  1. पृथ्वी पर यहाँ क्या हो रहा है?
  2. मैं यूबीएफ -8 में परिवर्तित करने के लिए लिबेरोफ़ाइस कैसे बताऊं?

विशिष्ट फ़ाइल जिसे मैं कनवर्ट करने का प्रयास कर रहा हूं, वह यहां है

जवाबों:


8

जाहिर तौर पर लिबरऑफिस डिफ़ॉल्ट रूप से आईएसओ-8859-1 का उपयोग करने की कोशिश करता है, जो समस्या का कारण बन रहा है। इस बग रिपोर्ट के जवाब में , एक नया पैरामीटर --infilterजोड़ा गया है। निम्न आदेश U + 2014 em डैश का उत्पादन करता है :

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

मैंने LO 5.0.3.2 के साथ इसका परीक्षण किया। बग रिपोर्ट से, ऐसा लगता है कि इस विकल्प का सबसे पुराना संस्करण LO 4.4 है।

इन्हें भी देखें: https://ask.libreoffice.org/en/question/13008/how-do-i-specify-an-input-character-coding-for-a-convert-to-command-line-usage/


धन्यवाद! फिर भी कोई सफलता नहीं मिली। इस कमांड लाइन के साथ: libreoffice --headless --convert-to csv --infilter = CSV: 44,34,76,1 file.xlsx --outdir dir; यह अभी भी 0x97 एम डैश के लिए है। मैं चकरा गया। मैं Ubuntu 14.04 पर LO 4.2.8.2 420m0 (बिल्ड: 2) चला रहा हूं।
स्कॉट डियरवेस्टर

आपको संभवतः मेरे उत्तर में उल्लिखित LO 4.4 या नए में अपग्रेड करने की आवश्यकता है।
जिम के

1
loffice --convert-to xlsx --infilter=csv:44,34,76 input.csvमेरे लिए काम किया। संदर्भ
Adobe

क्या आपके पास एक लिंक है जहाँ ये infilterविकल्प सूचीबद्ध हैं? @Adobe द्वारा पोस्ट किया गया लिंक बहुत पुराना है।
14

--infilterइनपुट फ़ाइल के बारे में लगता है और यही कारण है कि @Adobe की कमांड काम करती है (CSV इनपुट) और OP की कमांड (XLSX इनपुट) नहीं करता है - बस एक अनुमान है
golimar

1

तुम कोशिश कर सकते हो,

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

यहाँ , आप के बारे में एक बहुत विस्तृत मदद है।


उत्तर के लिए धन्यवाद। मुझे अभी भी अतिरिक्त टोकन स्वीकार करने के लिए नहीं मिल रहा है। मैंने कोशिश की है --convert-to "csv: पाठ - txt - csv (StarCalc): 44,34,76,1, 0", --convert-to "csv: पाठ - txt - csv (StarCalc): 44,34,76,1,1 / 2/2/2/3/2/4/2/5/2/6/2/7/2/8/2/2/9/1/10/3 "और विभिन्न अन्य संयोजन। कोई सुझाव?
स्कॉट डियरवेस्टर

csv:"Text - txt - csv (StarCalc)":"44,34,0,1,,0", सीएसवी :"डबल उद्धृत" :"डबल उद्धृत"
xae

यह केवल शेल के सापेक्ष होने जा रहा है, लेकिन मैंने इसे वैसे ही परिणामों के साथ आजमाया।
स्कॉट Deerwester

संबंधित कार्य के लिए यहांunoconv और सीधे उपयोग किए जा रहे हैं soffice, शायद मदद कर सकते हैं।
xae
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.