excel - microsoft - एक्सेल सूत्र




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

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

  2. .txt से .csv में प्रारूप बदलें (XYX.txt से XYX.csv तक फ़ाइल का नाम बदलें

https://code.i-harness.com

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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

(अपने एन्कोडिंग के साथ सीपी 1250 को प्रतिस्थापित करना याद रखें)।

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


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

Catdoc स्थापित करें:

apt-get install catdoc

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

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

यह तेजी से चमक रहा है।

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

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


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


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


एक्सेल 2016 के तहत, हमारे पास यूटीएफ -8 प्रारूप को समर्पित एक सीएसवी निर्यात विकल्प है।


एक्सेल आमतौर पर utf8 के बजाय एएनएसआई एन्कोडिंग के रूप में एक csv फ़ाइल सहेजता है।

फ़ाइल को सही करने का एक विकल्प नोटपैड या नोटपैड ++ का उपयोग करना है:

  1. नोटपैड या नोटपैड ++ के साथ .csv खोलें।
  2. सामग्री को अपने कंप्यूटर क्लिपबोर्ड पर कॉपी करें।
  3. फ़ाइल से सामग्री हटाएं।
  4. फ़ाइल के एन्कोडिंग को utf8 में बदलें।
  5. सामग्री क्लिपबोर्ड से वापस पेस्ट करें।
  6. फ़ाइल सहेजें।

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


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

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

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

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

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

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

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


नोटपैड ++ के साथ खुला .csv ठीक है। यदि आप देखते हैं कि आपका एन्कोडिंग अच्छा है (आप सभी पात्रों को देखते हैं) वे एन्कोडिंग दबाएं, फिर एएनएसआई में कनवर्ट करें - पता लगाएं कि आपका वर्तमान एन्कोडिंग क्या है


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

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

मुझे OpenOffice का स्प्रेडशीट एप्लिकेशन मिला है, कैल्क, सीएसवी डेटा को संभालने में वाकई अच्छा है।

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


मुझे एक ही समस्या है और this ऐड में आना है, और एक्सेल 2007 और 2010 के बगल में एक्सेल 2013 में यह पूरी तरह से ठीक काम करता है जिसका उल्लेख है।


मैं भी एक ही समस्या में आया हूं लेकिन इसके लिए एक आसान समाधान है।

  1. Excel 2016 या उच्चतर में अपनी xlsx फ़ाइल खोलें।
  2. "इस रूप में सहेजें" में इस विकल्प का चयन करें: "(सीएसवी यूटीएफ -8 (कॉमा डिलीमिटेड) * सीएसवी)"

यह पूरी तरह से काम करता है और एक सीएसवी फ़ाइल जेनरेट की जाती है जिसे किसी भी सॉफ्टवेयर में आयात किया जा सकता है। मैंने अपने SQLite डेटाबेस में यह सीएसवी फ़ाइल आयात की है और यह सभी यूनिकोड अक्षरों के साथ पूरी तरह से काम करता है।


मैंने एक छोटी पायथन लिपि लिखी है जो यूटीएफ -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)

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


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







utf-8