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.