दिलचस्प पोस्ट
Scanf () समस्या से पहले C / C ++ printf () 'WebForm_DoPostBackWithOptions' IE11 पूर्वावलोकन में अनिर्धारित है MySQL में 2 घंटे वर्तमान समय में जोड़ें? dropdownlist MVC3 रेज़र में चयनित मान सेट करें एचटीएमएल टैग्स <div> और <span> के बीच अंतर क्या है? Sass में एक नंबर को एक इकाई जोड़ना उद्देश्य-सी से स्विफ्ट प्रकार की संपत्ति तक नहीं पहुंच सकते एक्शन बार में सर्च VIEW को कार्यान्वित करना एनएसपीआरडीएक्स का प्रयोग एनएसएआरएआरएस पर आधारित एनएसएआरआरए फ़िल्टर करने के लिए एक सबमिट बटन के बिना प्रविष्टि दबाकर फ़ॉर्म सबमिट करना क्या सादे सॉकेट को SSLSocket में बदलना संभव है? PostgreSQL में रिक्त स्थान पर अतिरिक्त स्थान पर कब्जा करना क्या है? जावास्क्रिप्ट: डॉम लोड इवेंट्स, एक्जिक्यूटशन अनुक्रम, और $ (डॉक्यूमेंट) .ready () एक वस्तु के सूचक को ढूँढना जिसमें उसे अजगर में सूचीबद्ध किया गया था कॉलम-एमडी -4, कोलेक्स-1, कॉल-एलजी -2 में बूटस्ट्रैप में संख्याओं का अर्थ

यूटीएफ 8 एन्कोडिंग के साथ सीएसवी के लिए एक्सेल

मेरे पास एक एक्सेल फाइल है जिसमें कुछ स्पैनिश वर्ण (टिल्डस, आदि) हैं जिन्हें मुझे एक आयात फ़ाइल के रूप में उपयोग करने के लिए एक CSV फ़ाइल में कनवर्ट करना होगा। हालांकि, जब मैं सीएसवी के रूप में सहेजें करता हूं तो यह "स्पेशल" स्पैनिश वर्णों को उलझाता है जो एएससीआईआई वर्ण नहीं हैं I यह ऐसा बाएं और दायां उद्धरणों और लंबी डैश के साथ करता है जो कि मैक में एक्सेल फाइल बनाने वाले मूल उपयोगकर्ता से आते हैं।

चूंकि सीएसवी सिर्फ एक पाठ फ़ाइल है, मुझे विश्वास है कि यह यूटीएफ 8 एन्कोडिंग को संभाल सकता है, इसलिए मैं अनुमान लगा रहा हूं कि यह एक एक्सेल सीमा है, लेकिन मैं एक्सेल से सीएसवी तक पहुंचने और गैर-एएससीआईआई वर्णों को रखने का एक तरीका तलाश रहा हूं बरकरार।

वेब के समाधान से एकत्रित समाधान "यूटीएफ 8 एन्कोडिंग के साथ सीएसवी के लिए एक्सेल"

एक सरल समाधान Google स्प्रेडशीट का उपयोग करना है पेस्ट करें (केवल तभी जब आपके पास जटिल सूत्र हैं) या शीट आयात करें तो सीएसवी डाउनलोड करें मैं सिर्फ कुछ अक्षर की कोशिश की और यह बल्कि अच्छी तरह से काम करता है।

नोट: आयात करते समय Google शीट की सीमाएं हैं यहां देखें

नोट: Google शीट के साथ संवेदनशील डेटा के बारे में सावधान रहें

संपादित करें: एक अन्य विकल्प – मूल रूप से वे वीबी मैक्रो या एडीन्स का उपयोग यूटीएफ 8 के रूप में सहेजने के लिए करते हैं। मैंने इन समाधानों में से कोई भी प्रयास नहीं किया है लेकिन वे उचित रूप से ध्वनि

मैंने ओपन ऑफिस की स्प्रेडशीट एप्लिकेशन को देखा है, कैल्क, सीएसवी डेटा को संभालने में वास्तव में अच्छा है

"इस रूप में सहेजें …" संवाद में, सीएसवी के लिए विभिन्न एन्कोडिंग प्राप्त करने के लिए "प्रारूप विकल्प" पर क्लिक करें। LibreOffice उसी तरह AFAIK काम करता है

कैल्श सेव डायलॉग

  1. एक्सेल शीट को "यूनिकोड टेक्स्ट (.txt)" के रूप में सहेजें अच्छी खबर यह है कि सभी अंतर्राष्ट्रीय वर्ण यूटीएफ 16 (नोट, यूटीएफ 8 में नहीं) में हैं। हालांकि, नई "* .txt" फ़ाइल टैब को सीमांकित की गई है, अल्पविराम से सीमांकित नहीं है, और इसलिए यह सही सीएसवी नहीं है

  2. (वैकल्पिक) जब तक आप आयात के लिए किसी टैब को सीमांकित फ़ाइल का उपयोग नहीं कर सकते, अपने पसंदीदा पाठ संपादक का उपयोग करें और "TAB अक्षरों को कॉमा" के साथ बदलें।

  3. लक्ष्य एप्लिकेशन में अपनी * .txt फ़ाइल आयात करें सुनिश्चित करें कि यह UTF16 प्रारूप को स्वीकार कर सकता है।

अगर यूटीएफ -16 को गैर-बीएमपी कोड बिंदुओं के लिए समर्थन के साथ ठीक से लागू किया गया है, तो आप जानकारी खोए बिना यूटीएफ -8 फाइल को यूटीएफ -8 में परिवर्तित कर सकते हैं। मैं ऐसा करने की अपनी पसंदीदा विधि को खोजने के लिए आपको छोड़ देता हूं।

मैं एक्सेल से डेटा को मूडल में आयात करने के लिए इस प्रक्रिया का उपयोग करता हूं

मुझे पता है यह एक पुराना सवाल है, लेकिन ओपी के समान मुद्दों के साथ संघर्ष करते हुए मुझे इस प्रश्न पर आना पड़ा।

किसी दिए गए समाधान को एक व्यवहार्य विकल्प नहीं मिला, मैंने यह पता लगाया कि क्या एक्सेल का उपयोग करने के लिए ऐसा करने का एक तरीका है।

सौभाग्य से, मैंने पाया है कि खो गया चरित्र मुद्दा केवल (मेरे मामले में) होता है जब एक्सएलएसएफ़ प्रारूप से सीएसवी प्रारूप में बचत होती है। मैंने एक्सएलएसएक्स फाइल को पहले एक्सएलएस करने की कोशिश की, फिर सीएसवी के लिए। यह वास्तव में काम किया

कृपया इसे एक कोशिश दें और देखें कि यह आपके लिए काम करता है या नहीं। सौभाग्य।

आप यूनिक्स के तहत iconv कमांड का उपयोग कर सकते हैं (विंडोज पर libiconv के रूप में भी उपलब्ध है)

कमांड लाइन में Excel के अंतर्गत सीएसवी के रूप में सहेजने के बाद:

 iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv 

(अपने एन्कोडिंग के साथ cp1250 को बदलने के लिए याद रखना)

पोस्ट कोड डेटाबेस जैसी बड़ी फ़ाइलों के लिए तेज़ और शानदार काम करता है, जिसे GoogleDocs (400.000 सेल की सीमा) पर आयात नहीं किया जा सकता।

ऐसा करने का केवल "आसान तरीका" इस प्रकार है। सबसे पहले, एहसास करें कि एक्सेल .csv फ़ाइल में क्या दिखाया गया है और क्या छुपा हुआ है के बीच एक अंतर है।

(1) एक एक्सेल फाइल खोलें जहां आपके पास जानकारी (.xls, .xlsx) है

(2) Excel में, "CSV (कॉमा डेलिमाइटेड) (* .csv) फ़ाइल प्रकार के रूप में चुनें और उस प्रकार के रूप में सहेजें।

(3) नोटपैड में ("प्रोग्राम" के अंतर्गत पाया जाता है और फिर प्रारंभ मेनू में सहायक उपकरण), नोटपैड में सहेजी। सीएसवी फ़ाइल खोलें

(4) फिर चुनें-> इस रूप में सहेजें … और "इस रूप में सहेजें" बॉक्स के निचले भाग में, "एन्कोडिंग" के रूप में लेबल वाला एक चयन बॉक्स है यूटीएफ -8 का चयन करें (एएनएसआई का उपयोग न करें या आप सभी लहजे आदि खो देते हैं) यूटीएफ -8 का चयन करने के बाद, फ़ाइल को मूल से थोड़ा अलग फ़ाइल नाम से सहेजें।

यह फ़ाइल UTF-8 में है और सभी वर्णों और लहजे को बरकरार रखती है और आयात की जा सकती है, उदाहरण के लिए, MySQL और अन्य डेटाबेस प्रोग्राम में।

यह उत्तर इस मंच से लिया गया है

एक अन्य एक ने मुझे उपयोगी पाया है: " संख्या " एन्कोडिंग-सेटिंग्स की अनुमति देता है जब सीएसवी के रूप में बचत होती है।

"नेवेट्स 1219" Google डॉक्स के बारे में सही है, हालांकि यदि आप फ़ाइल को "आयात" करते हैं तो अक्सर इसे यूटीएफ -8 में परिवर्तित नहीं करता है

लेकिन अगर आप किसी मौजूदा Google स्प्रैडशीट में सीएसवी आयात करते हैं तो यह यूटीएफ -8 में परिवर्तित हो जाता है

यहाँ एक नुस्खा है:

  • मुख्य डॉक्स (या ड्राइव) स्क्रीन पर "बनाएं" बटन पर क्लिक करें और "स्प्रेडशीट" चुनें
  • "फ़ाइल" मेनू से "आयात" चुनें
  • "फ़ाइल चुनें" पर क्लिक करें
  • "स्प्रेडशीट बदलें" चुनें
  • जो भी वर्ण आप एक विभाजक के रूप में उपयोग कर रहे हैं वह चुनें
  • "आयात" पर क्लिक करें
  • "फ़ाइल" मेनू से "डाउनलोड करें" चुनें -> सीएसवी (चालू शीट)

परिणामस्वरूप फाइल यूटीएफ -8 में होगी

आप तृतीय पक्ष सॉफ्टवेयर के बिना एक आधुनिक विंडोज मशीन पर ऐसा कर सकते हैं। यह विधि विश्वसनीय है और यह उद्धृत अल्पविराम, उद्धृत टैब वर्ण, सीजेके वर्णों आदि में डेटा को संभाल देगा।

1. Excel से सहेजें

Excel में, टाइप Unicode Text (*.txt) का उपयोग करके डेटा को file.txt सहेजें।

2. प्रारंभ करें PowerShell

स्टार्ट मेनू से powershell चलाएं

3. फ़ाइल PowerShell में लोड करें

 $data = Import-Csv C:\path\to\file.txt -Delimiter "`t" -Encoding BigEndianUnicode 

4. डेटा को सीएसवी के रूप में सहेजें

 $data | Export-Csv file.csv -Encoding UTF8 -NoTypeInformation 

उन लोगों के लिए, जो पूरी तरह प्रोग्रामेटिक (या कम से कम सर्वर-साइड) समाधान की खोज करते हैं, मेरे पास catdoc के xls2csv उपकरण का उपयोग करने में काफी सफलता मिली है।

कैटडॉक स्थापित करें:

 apt-get install catdoc 

रूपांतरण करें:

 xls2csv -d utf-8 file.xls > file-utf-8.csv 

यह तेज तेज़ है

ध्यान दें कि यह महत्वपूर्ण है कि आप -d utf-8 ध्वज शामिल करें, अन्यथा यह डिफ़ॉल्ट cp1252 एन्कोडिंग में आउटपुट को एन्कोड करेगा, और आप जानकारी खोने के जोखिम को चलाते हैं।

ध्यान दें कि xls2csv केवल .xls फ़ाइलों के साथ ही काम करता है, यह .xlsx फ़ाइलों के साथ काम नहीं करता है।

पॉवरहेल का उपयोग करने के बारे में

 Get-Content 'C:\my.csv' | Out-File 'C:\my_utf8.csv' -Encoding UTF8 

मै मैक एक्सेल पर इस समस्या के लिए एक VBA समाधान नहीं मिल पा रहा था। यूटीएफ -8 पाठ को आउटपुट करने का कोई रास्ता नहीं था।

इसलिए मुझे आखिरकार वीबीए, बिट बुलेट पर देना पड़ा और एप्पल स्क्रिप्ट सीखा। यह लगभग उतना बुरा नहीं था जितना मैंने सोचा था।

समाधान यहां वर्णित है: http://talesoftech.blogspot.com/2011/05/excel-on-mac-goodbye-vba-hello.html

एक Windows वातावरण मानते हुए, सहेजें और फ़ाइल को सामान्य रूप से Excel में काम करते हैं, लेकिन फिर ग्नोम जीन्यूमेरिक (मुक्त) में सहेजी गई Excel फ़ाइल को खोलें। जीनोम जीन्यूमेरिक की स्प्रैडशीट को सीएसवी के रूप में सहेजें – मेरे लिए वैसे भी – इसे यूटीएफ -8 सीएसवी के रूप में बचाता है

ऐसा करने का आसान तरीका: ओपन ऑफ़िस ( यहां ) डाउनलोड करें , स्प्रैडशीट लोड करें और Excel फ़ाइल खोलें ( .xls या .xlsx )। उसके बाद बस इसे एक पाठ सीएसवी फ़ाइल के रूप में सहेजें और एक विंडो खोलने से खुला हो जो वर्तमान स्वरूप को रखने या एक। ओडीएफ प्रारूप के रूप में सहेजने के लिए। "मौजूदा स्वरूप को रखें" का चयन करें और नई विंडो में उस विकल्प का चयन करें जो आपके लिए बेहतर काम करता है, उस भाषा के अनुसार जो आपकी फ़ाइल पर लिखा गया है। स्पेनिश भाषा के लिए पश्चिमी यूरोप का चयन करें ( Windows-1252/ WinLatin 1 ) और फ़ाइल ठीक काम करती है। यदि आप यूनिकोड ( UTF-8 ) का चयन करते हैं, तो यह स्पैनिश वर्णों के साथ काम करने वाला नहीं है।

  1. युनिकोड टेक्स्ट => फाइल के रूप में एक्सएलएस फाइल (एक्सेल फाइल) को सहेजें पाठ प्रारूप में (.टीटीटी) बचाया जाएगा

  2. Format .txt से .csv में बदलें (XYX.txt से XYX.csv से फ़ाइल का नाम बदलें

जैसा मजेदार हो सकता है, जैसा कि मैंने सोचा था कि सबसे आसान तरीका मुझे अपनी 180 एमबी स्प्रैडशीट को यूटीएफ 8 सीएसवी फ़ाइल में सहेजने के लिए मिला, Excel में कोशिकाओं का चयन करना, उन्हें प्रतिलिपि बनाएं और क्लिपबोर्ड की सामग्री को SublimeText में चिपकाएं।

"Nevets1219" का एक दूसरा विकल्प है आपकी सीएसवी फ़ाइल को नोटपैड ++ में खोलना और एएनएसआई के लिए रूपांतरण करना।

शीर्ष मेनू में चुनें: एन्कोडिंग -> एन्डीआई में कनवर्ट करें

माइक्रोसॉफ्ट एक्सेल में यूनिकोड एन्कोडिंग के जरिए स्प्रैडशीट का निर्यात करने का एक विकल्प है। निम्न स्क्रीनशॉट देखें

यहां छवि विवरण दर्ज करें

सबसे आसान तरीका: कोई ज़रूरत नहीं ओपन ऑफ़िस और गूगल डॉक्स

  1. अपनी फ़ाइल को "यूनिकोड पाठ फ़ाइल" के रूप में सहेजें;
  2. अब आपके पास एक यूनिकोड पाठ फ़ाइल है
  3. इसे "नोटपैड" और "इस रूप में सहेजें" के साथ इसे "यूटीएफ -8" या अन्य कोड पेज का चयन करें जिसे आप चाहते हैं
  4. "txt" से "csv" फाइल एक्सटेंशन का नाम बदलें

वैसे भी एमएस ऑफिस के साथ इसे खोल न !!! अब आपके पास एक टैब सीमांकित सीएसवी फ़ाइल है

मैंने एक छोटी पायथन स्क्रिप्ट लिखा है जो यूटीएफ -8 में वर्कशीट निर्यात कर सकता है।

आपको केवल एक्सेल फाइल को पहले पैरामीटर के रूप में देना होगा जिसके बाद आप निर्यात करना चाहते हैं। यदि आप शीट नहीं देते हैं, तो स्क्रिप्ट एक्सेल फाइल में उपस्थित सभी कार्यपत्रकों को निर्यात करेगा।

 #!/usr/bin/env python # export data sheets from xlsx to csv from openpyxl import load_workbook import csv from os import sys reload(sys) sys.setdefaultencoding('utf-8') def get_all_sheets(excel_file): sheets = [] workbook = load_workbook(excel_file,use_iterators=True,data_only=True) all_worksheets = workbook.get_sheet_names() for worksheet_name in all_worksheets: sheets.append(worksheet_name) return sheets def csv_from_excel(excel_file, sheets): workbook = load_workbook(excel_file,use_iterators=True,data_only=True) for worksheet_name in sheets: print("Export " + worksheet_name + " ...") try: worksheet = workbook.get_sheet_by_name(worksheet_name) except KeyError: print("Could not find " + worksheet_name) sys.exit(1) your_csv_file = open(''.join([worksheet_name,'.csv']), 'wb') wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL) for row in worksheet.iter_rows(): lrow = [] for cell in row: lrow.append(cell.value) wr.writerow(lrow) print(" ... done") your_csv_file.close() if not 2 <= len(sys.argv) <= 3: print("Call with " + sys.argv[0] + " <xlxs file> [comma separated list of sheets to export]") sys.exit(1) else: sheets = [] if len(sys.argv) == 3: sheets = list(sys.argv[2].split(',')) else: sheets = get_all_sheets(sys.argv[1]) assert(sheets != None and len(sheets) > 0) csv_from_excel(sys.argv[1], sheets) 

एन्कोडिंग -> एएनएसआई / यूनिकोड में एन्कोड करने के लिए एन्डीओ को कन्वर्ट करना होगा। Utf8 यूनिकोड का एक सबसेट है शायद एएनएसआई में सही ढंग से एन्कोड किया जाएगा, लेकिन यहां हम यूटीएफ 8, स्यूवेन डिजीटल के बारे में बात कर रहे हैं।

सीएसवी (अल्पविराम से सीमांकित) के रूप में निर्यात करना और उसके बाद, सीएसवी को नोटपैड ++ (मुक्त) के साथ खोलना, फिर एन्कोडिंग> यूटीएफ 8 में कन्वर्ट करना जैसे तेज तरीके हैं। लेकिन केवल अगर आपको प्रति फ़ाइल एक बार ऐसा करना है यदि आपको परिवर्तन और निर्यात की जरूरत है, तो सबसे अच्छा लिबरऑफिस या जीडीओएस समाधान है।

Notepad ++ के साथ खुले सीएसवी पेन यदि आप देखते हैं कि आपकी एन्कोडिंग अच्छी है (आप सभी वर्णों को वे देखते हैं जैसा वे होना चाहिए) एन्कोडिंग दबाएं, फिर एएनएसआई में परिवर्तित करें – पता करें कि आपका वर्तमान एन्कोडिंग क्या है

एक अन्य समाधान है कि फ़ाइल को जीतने के द्वारा खोलें और इसे टीएसटीटी के रूप में सहेजें और फिर इसे एक्सेल करके फिर से खोलें और यह आईएसए काम करेगा

एक ही समस्या में आया और इस पोस्ट को बाहर कर दिया। उपरोक्त में से कोई भी मेरे लिए काम नहीं करता है आखिर में मैंने अपना यूनिकोड .xls को .xml (रूप में सहेजें … एक्सएमएल स्प्रैडशीट 2003) में परिवर्तित कर दिया और यह सही चरित्र का उत्पादन किया। तब मैंने अपने उपयोग के लिए XML और निकाले गए सामग्री को पार्स करने के लिए कोड लिखा था

मैंने निम्न समाधान का इस्तेमाल किया: मैक एक्सेल 2008> फ़ाइल> सहेजें-के रूप में और फिर प्रारूप के तहत MS_DOS अल्पविराम सेमा (.csv) का उपयोग करें। सही काम किया

एक और तरीका है नोटपैड में यूटीएफ -8 सीएसवी फ़ाइल खोलना, जहां इसे सही तरीके से प्रदर्शित किया जाएगा। फिर टैब के साथ सभी "," को बदलें इस सब को एक नई एक्सेल फ़ाइल में पेस्ट करें

मेरे पास एक ही समस्या है और इस भर में आते हैं, और 2007 और 2010 की श्रेष्ठता के साथ एक्सेल 2013 में यह पूरी तरह से ठीक काम करता है, जिसका उल्लेख इसके लिए है

वार्तालाप सहेजें> उपकरण बटन> वेब विकल्प> एन्कोडिंग टैब

मुझे अपने मैक पर इस प्रक्रिया को स्वचालित करने की आवश्यकता है I मैं मूल रूप से catdoc/xls2csv का उपयोग करने की कोशिश की, जैसा कि mpowered द्वारा सुझाया गया था, लेकिन xls2csv को दस्तावेज़ के मूल एन्कोडिंग का पता लगाने में परेशानी थी, न कि सभी दस्तावेज़ समान थे। मैं जो समाप्त कर रहा था वह डिफ़ॉल्ट वेबपेज आउटपुट एन्कोडिंग को UTF-8 के रूप में स्थापित कर रहा था और फिर ऐप्पल के स्वचालक को फाइल प्रदान करता था, Web Page (HTML) कनवर्ट करने के लिए Convert Format of Excel Files के Convert Format of Excel Files फॉर्म को लागू करता था। तब PHP , DOMDocument और XPath का उपयोग करते हुए, मैंने दस्तावेज़ों से पूछताछ की और उन्हें CSV स्वरूपित किया।

यह PHP स्क्रिप्ट (process.php) है:

 <?php $pi = pathinfo($argv[1]); $file = $pi['dirname'] . '/' . $pi['filename'] . '.csv'; $fp = fopen($file,'w+'); $doc = new DOMDocument; $doc->loadHTMLFile($argv[1]); $xpath = new DOMXPath($doc); $table = []; foreach($xpath->query('//tr') as $row){ $_r = []; foreach($xpath->query('td',$row) as $col){ $_r[] = trim($col->textContent); } fputcsv($fp,$_r); } fclose($fp); ?> 

और यह शेल कमांड है जिसे मैं HTML दस्तावेज को सीएसवी में कनवर्ट करता था:

 find . -name '*.htm' | xargs -I{} php ./process.php {} 

यह वास्तव में, ऐसा करने का सचमुच चहचहाना तरीका है, लेकिन यह सबसे विश्वसनीय तरीका है जिसे मैंने पाया।

मैं एक प्रोग्राम का उपयोग करता हूं जो मुझे नेट पर मिला (मेरा नहीं है और कोई क्रेडिट नहीं है)। लेकिन यह प्रवाह रहित काम करता है

https://www.dropbox.com/s/vllyvlv6rekd69v/CpConverter.exe?dl=0

 - Choose your file - select europ (windows) 1252 as source - select UNICODE UTF-8 as destination 

और रन क्लिक करें

आप UTF8 पर आयात कर सकते हैं या एक UFT8 फ़ाइल आयात कर सकते हैं, इसे एक्सेल में प्रबंधित कर सकते हैं और इसे यूटीएफ 8 में निर्यात कर सकते हैं