मैं हमेशा Excel को CSV फ़ाइलों के सभी कॉलमों को पाठ के रूप में आयात करने के लिए कैसे सेट कर सकता हूं?


68

हालाँकि मैं इससे बचने की कोशिश करता हूँ, लेकिन मुझे कभी-कभी एक्सेल में CSV फ़ाइल खोलनी पड़ती है। जब मैं करता हूं, यह संख्याओं वाले स्तंभों को प्रारूपित करता है, जो उन्हें मेरे उद्देश्यों के लिए बेकार बनाता है। जहाँ तक मैं बता सकता हूँ, आयात पर ऐसा होने से रोकने का एकमात्र तरीका फ़ाइल का नाम बदलना है, इसलिए विस्तार .csv है और प्रत्येक स्तंभ के प्रारूप को व्यक्तिगत रूप से निर्दिष्ट करने के लिए आयात विज़ार्ड का उपयोग करें। 50-60 कॉलम वाली फाइलों के लिए, यह अव्यावहारिक है।

चूंकि इंटरनेट पर इस बार-बार पूछे जाने वाले प्रश्न के हर उत्तर में फ़ाइल के खुलने के बाद फॉर्मेट किए गए नंबरों को वापस करने के कुछ साधन सुझाए गए हैं (जो मेरे लिए काम नहीं करेंगे - मैं सामान्य समस्या को हल करना चाहता हूं, कुछ विशिष्ट मामलों को नहीं) या मैन्युअल रूप से प्रत्येक कॉलम के प्रारूप प्रकार का चयन करना (जो मैं नहीं करना चाहता), मैं एक वैश्विक वरीयता या शैली सेट करने का एक तरीका ढूंढ रहा हूं, जैसे कि खोले गए सभी सीएसवी फाइलों के सभी कॉलम हमेशा पाठ के रूप में स्वरूपित होते हैं। मैं उद्धरणों के साथ संख्याओं को "बख्तरबंद" करने के बारे में भी जानता हूं, लेकिन मुझे जो फाइलें मिलती हैं, वे उस तरह से नहीं आती हैं और मैं उम्मीद कर रहा था कि फाइलों को पूर्व-प्रक्रिया से बचने के लिए ताकि एक्सेल उन्हें खराब न करें।

क्या विशेष रूप से ऐसा करने का एक तरीका है : हमेशा खोले गए सभी कॉलमों को पाठ के रूप में पाठ के रूप में प्रारूपित करें, बिना आयात के हर बार प्रत्येक कॉलम को मैन्युअल रूप से चुनें?

मैं एक्सेल 2003 का उपयोग कर रहा हूं, लेकिन अगर आप जानते हैं कि मैं 2007 के लिए उत्तर दूंगा।


1
अरे स्क्रिप्टिंग गाइ ने CSV को एक्सेल में आयात करने के बारे में एक ब्लॉग लेख किया था जिसमें आपके लिए कुछ उपयोगी टिडबिट हो सकते हैं। Powerhell के अंदर डेटा ऑब्जेक्ट के साथ खेलने से आप जो चाहें कर सकते हैं। उत्तर के रूप में पोस्ट नहीं किया गया क्योंकि यह अनिवार्य रूप से एक ऑफसाइट लिंक है, लेकिन इसका आपके लिए कुछ उपयोग हो सकता है।
मैट्रिक्स मोल

जवाबों:


7

यह काम:

Sub OpenCsvAsText(ByVal strFilepath As String)

    Dim intFileNo As Integer
    Dim iCol As Long
    Dim nCol As Long
    Dim strLine As String
    Dim varColumnFormat As Variant
    Dim varTemp As Variant

    '// Read first line of file to figure out how many columns there are
    intFileNo = FreeFile()
    Open strFilepath For Input As #intFileNo
    Line Input #intFileNo, strLine
    Close #intFileNo
    varTemp = Split(strLine, ",")
    nCol = UBound(varTemp) + 1

    '// Prepare description of column format
    ReDim varColumnFormat(0 To nCol - 1)
    For iCol = 1 To nCol
        varColumnFormat(iCol - 1) = Array(iCol, xlTextFormat)
        ' What's this? See VBA help for OpenText method (FieldInfo argument).
    Next iCol

    '// Open the file using the specified column formats
    Workbooks.OpenText _
            Filename:=strFilepath, _
            DataType:=xlDelimited, _
            ConsecutiveDelimiter:=False, Comma:=True, _
            FieldInfo:=varColumnFormat

End Sub

उपयोग:

OpenCsvAsText "C:\MyDir\MyFile.txt"

पाठ के रूप में स्वरूपित सभी स्तंभों के साथ कोमा-सेपरेटेड फ़ाइल अब एक्सेल शीट के रूप में खुली है।

ध्यान दें कि @ वेटमेलन का विज़ार्ड समाधान ठीक काम करता है, लेकिन यदि आप कई फाइलें खोल रहे हैं, तो हो सकता है, मेरी तरह, हर बार थके हुए हो, शिफ्ट-क्लिक करने के लिए कॉलम 60 पर स्क्रॉल करें।

EDIT @GSerg नीचे टिप्पणी में बताती है कि यह "काम नहीं करता है" और "रिक्त स्थान और अग्रणी शून्य खाता है"। मैं केवल प्रश्न पर टिप्पणी उद्धृत करूंगा, जो अधिक वर्णनात्मक है:

अज्ञात कारणों से, भले ही आप VBA में सभी स्तंभों के लिए स्पष्ट रूप से प्रारूप प्रदान करते हों, अगर फ़ाइल एक्सटेंशन CSV है तो Excel इसे अनदेखा कर देगा। जैसे ही आप एक्सटेंशन बदलते हैं, उसी कोड से सही परिणाम मिलेंगे।

तो ऊपर का कोड "काम करता है", लेकिन इस हास्यास्पद एक्सेल व्यवहार से मारा जाता है। जिस भी तरह से आप इसे काटते हैं, आप एक्सटेंशन को ".csv" के अलावा किसी और चीज़ में बदलने के लिए फंस गए हैं, क्षमा करें! उसके बाद, आप घर मुक्त हो।


1
काम नहीं करता है। खाने की जगहें, प्रमुख
जीरो


1
उपयोग की गई विधि Workbooks.OpenTextमें डिज़ाइन द्वारा इसकी खामियां हैं (नीचे मेरा उत्तर देखें)। QueryTablesइसके बजाय उपयोग करें ।
निकदा २५'१३ को

71

एक्सेल में CSV कैसे खोलें

अच्छा रास्ता

  • Excel → डेटा → बाहरी डेटा प्राप्त करें → सभी कॉलम चुनें Shiftऔर टेक्स्ट चुनें

    अपसाइड: सभी मानों को बिना किसी अपवाद के पाठ के रूप में सही ढंग से व्यवहार करता है

    डाउनसाइड: एक साधारण डबल-क्लिक से अधिक चरण

बुरा रास्ता

  • डबल क्लिक के साथ एक CSV खोलें या संवाद के साथ एक्सेल का खोलें

    नकारात्मक पक्ष: एक्सेल का आंतरिक CSV हैंडलर पाठ के बजाय एक सूत्र के रूप में एक अग्रणी -या =संकेत के साथ मूल्यों का गलत अर्थ निकालता है

    नकारात्मक पक्ष: आप द्विआधारी मूल्यों से अग्रणी शून्य खो देंगे जैसे 0001एक्सेल के ऑटो का पता लगाने वाले कॉलम प्रारूप के कारण

अच्छा तरीका (VBA के लिए)

  • QueryTables (VBA समकक्ष का Get external data) → उदाहरण कोड का उपयोग करें

    अपसाइड: सभी मानों को बिना किसी अपवाद के पाठ के रूप में सही ढंग से व्यवहार करता है

    डाउनसाइड: OpenTextविधि की तुलना में थोड़ा अधिक कोड

खराब तरीका (VBA के लिए)

  • Workbooks.OpenTextविधि का उपयोग करें → उदाहरण कोड

    डाउनसाइड: यह विधि अभी भी एक्सेल के आंतरिक सीएसवी आयात हैंडलर का उपयोग कर रही है, जिसमें इसकी सभी खामियां हैं

    डाउनसाइड: इसके अतिरिक्त, यदि CSV एक्सटेंशन है तो fieldinfoपैरामीटर की OpenTextअनदेखी की जाती है। आम तौर पर, यह पैरामीटर आपको प्रत्येक कॉलम प्रारूप का चयन करने देता है, लेकिन नहीं अगर एक्सटेंशन CSV है। आप स्टैक ओवरफ्लो पर इस व्यवहार के बारे में अधिक पढ़ सकते हैं

    यदि आप स्रोत फ़ाइल पर पूर्ण नियंत्रण रखते हैं, तो CSV से TXT और फिर वापस CSV में स्रोत एक्सटेंशन का नाम बदलना

अतिरिक्त तरीके

  • यदि आपके पास उस स्रोत तक पहुंच है जो आपका CSV बनाता है, तो आप CSV सिंटैक्स को बदल सकते हैं।
    दोहरे उद्धरण चिह्नों के साथ हर मान को संलग्न करें और ="00001"हर मूल्य के लिए टैब की तरह एक समान चिह्न उपसर्ग करें या प्रीपेन्ड करें। दोनों तरीके एक्सेल को पाठ के रूप में मान के लिए मजबूर करेंगे

    मूल CSV सामग्री
    यहाँ छवि विवरण दर्ज करें

    एक्सेल में CSV जब डबल क्लिक के माध्यम से खोला जाता है
    यहाँ छवि विवरण दर्ज करें

    ध्यान दें कि एक्सेल द्वारा लाइन 2 (डबल कोट विधि) और लाइन 3 (टैब विधि) को कैसे नहीं बदला जाता है

  • नोटपैड में CSV खोलें और Excel में सभी मानों को कॉपी और पेस्ट करें। फिर डेटा का उपयोग करें - टेक्स्ट टू कॉलम
    डाउनसाइड: कॉलम कॉलम में टेक्स्ट को सामान्य बैक से टेक्स्ट में बदलने के लिए असंगत परिणाम उत्पन्न करता है। यदि कोई मान -वर्णों से घिरा हुआ है (उदाहरण के लिए "= E1-S1"), तो Excel उस मान को एक से अधिक कॉलम में विभाजित करने का प्रयास करता है। उस कक्ष के दाईं ओर स्थित मान अधिलेखित हो सकते हैं

    ( स्तंभों पर पाठ का व्यवहार Excel 2007 और 2013 के बीच कहीं बदल गया था, ताकि यह काम न हो)


Excel ऐड-इन CSV खोलने और सभी मानों को पाठ के रूप में आयात करने के लिए

यह CSV आयात क्रियाओं को सरल बनाने के लिए एक एक्सेल प्लग-इन है।
मुख्य लाभ: यह एक क्लिक समाधान और उपयोग करता है QueryTables, बाहरी डेटा प्राप्त करने के पीछे एक ही बुलेटप्रूफ विधि है

  • यह Excel में एक नया मेनू कमांड जोड़ता है जो आपको CSV और TXT फ़ाइलों को आयात करने देता है। सभी मान वर्तमान में चयनित सेल में शुरू होने वाली सक्रिय शीट पर आयात किए जाते हैं
  • एक्सेल ऐड-इन विंडोज और मैक पर सभी कार्यालय संस्करणों के लिए उपलब्ध हैं
  • पूरे ऐड-इन में कोड की केवल 35 लाइनें हैं। यदि आप उत्सुक हैं, तो टिप्पणी स्रोत कोड की जाँच करें
  • प्रयुक्त CSV सूची विभाजक (अल्पविराम या अर्धविराम) आपकी स्थानीय एक्सेल सेटिंग्स से लिया गया है
  • एन्कोडिंग UTF-8 पर सेट है

स्थापना

  1. ऐड-इन डाउनलोड करें और इसे अपने ऐड-इन फ़ोल्डर में सहेजें:%appdata%\Microsoft\AddIns
  2. Excel खोलें और Add-In: को सक्रिय File tab → Options → Add-Ins → Go Toकरें और चुनेंImportCSV.xla
  3. VBA मैक्रो सक्षम करें: File tab → Options → Trust Center → Trust Center Settings → Macro Settings → Enable all macros
  4. Excel को पुनरारंभ करें

आपको ऐड-इन नामक एक नई मेनू बार प्रविष्टि दिखाई देगी और आप इस बटन का उपयोग आयात संवाद की परेशानी से गुजरे बिना अपनी CSV फाइलें जल्दी खोलने के लिए करेंगे।

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


Windows Explorer से सीधे CSV खोलने के लिए PowerShell स्क्रिप्ट

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

  1. एक नई टेक्स्ट फ़ाइल बनाएं और नीचे दी गई स्क्रिप्ट पेस्ट करें। एक टिप्पणी संस्करण यहाँ पाया जा सकता है
$CSVs = @()
$args.ForEach({
    If ((Test-Path $_) -and ($_ -Match "\.csv$|\.txt$")) {
        $CSVs += ,$_
    } 
})

if (-Not $null -eq $CSVs) {

    $excel = New-Object -ComObject excel.application 
    $excel.visible = $true
    $excel.SheetsInNewWorkbook = $CSVs.Count    
    $workbook = $excel.Workbooks.Add()

    for ($i=0; $i -lt $CSVs.Count; $i++){

        $csv = Get-Item $CSVs[$i]
        $worksheet = $workbook.worksheets.Item($i + 1)
        $worksheet.Name = $csv.basename

        $TxtConnector = ("TEXT;" + $csv.fullname)
        $Connector = $worksheet.QueryTables.add($TxtConnector,$worksheet.Range("A1"))
        $query = $worksheet.QueryTables.item($Connector.name)
        $query.TextFilePlatform = 65001
        $query.TextFileTextQualifier = 1
        $query.TextFileOtherDelimiter = $Excel.Application.International(5) 
        $query.TextFileParseType  = 1
        $arrFormats = ,2 * $worksheet.Cells.Columns.Count
        $query.TextFileColumnDataTypes = $arrFormats
        $query.AdjustColumnWidth = 1
        $query.Refresh()
        $query.Delete()
    }
}
  1. इसे कहीं बचा लो C:\my\folder\myScript.ps1। (विस्तार पर ध्यान दें .ps1)
    • ओपन अपने SendTo फ़ोल्डर के माध्यम से WinR» shell:sendto» Enter
  2. राइट क्लिक »नई» शॉर्टकट के माध्यम से एक नया शॉर्टकट बनाएं और इस लाइन को पेस्ट करें। जहाँ आप अपनी स्क्रिप्ट डालते हैं, वहाँ अपने आप से रास्ता बदलना न भूलें। शॉर्टकट का नाम, उदाहरण के लिए, एक्सेल

"% SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ PowerShell.exe" -NoProfile -NonInteractive -WindowStyle हिडन -File "C: \ मेरे \ folder \ myScript.ps1"

अब आप (एकाधिक) CSV का चयन कर सकते हैं और उन्हें एक्सेल के माध्यम से खोल सकते हैं Right-click » SendTo » Excel


1
ऐड-इन का परीक्षण 2003 और 2013 के साथ किया गया था
nixda

शीर्ष "बेस्ट वे" बिल्कुल वही है जो मुझे एकबारगी आयात के लिए चाहिए था। वीबीए के साथ गड़बड़ करने की कोई आवश्यकता नहीं है और यह भी नियंत्रित कर सकते हैं कि कॉलम को दिनांक / संख्याओं के रूप में लिया जाता है (पाठ के रूप में लिए गए बाकी के साथ)। मैं चाह रहा था कि CSV पर डबल क्लिक करने पर एक्सेल इस आयात विज़ार्ड को खोलने की पेशकश करेगा।
ADTC

@Vadzim हैलो, मैं मृत लिंक को ठीक करने के आपके प्रयास की सराहना करता हूं। वास्तव में ge.tt अंतिम महीनों में कुछ समस्याएँ खड़ी करता है। लेकिन मुझे लगता है कि मैंने सभी समस्याओं को ठीक कर दिया है और पुराने मूल लिंक फिर से काम करने चाहिए। मुझे नहीं पता कि Google Chrome ge.tt से कुछ भी डाउनलोड करने से पहले चेतावनी क्यों देता है। लेकिन अन्य सभी ब्राउज़र सामान्य रूप से काम करते हैं और मैं आपको आश्वस्त कर सकता हूं कि वे कोई मैलवेयर नहीं हैं
nixda

@nixda, लिंक को पुनर्जीवित करने के लिए और महान जवाब के लिए धन्यवाद
वादज़्मी

@nixda ge.tt के लिंक फिर से टूट गए हैं। अधिकांश कहते हैं कि वे उपलब्ध नहीं हैं क्योंकि स्वामी ने टीओएस का उल्लंघन किया है। हालाँकि, OpenCSV.exe के लिए एक कहता है "ये फाइलें अब उपलब्ध नहीं हैं क्योंकि उन्होंने सेवा की शर्तों का उल्लंघन किया है।" जो मुझे पूछने के लिए लाता है, क्या आप ImportMyCSV एक्सेल फ़ंक्शन के लेखक हैं? (sourcecode अभी भी पास्टबिन पर उपलब्ध है) यह एक भयानक उपकरण है - मैं इसे काम पर उपयोग करता हूं और दूसरों को इसकी सिफारिश की है। लेकिन मुझे लेखक को ठीक से श्रेय देने के लिए, अगर कुछ और नहीं तो कोड की उत्पत्ति में दिलचस्पी है।
GlennFromIowa

5

आप एक .xlsx खोलकर पहले प्रयास कर सकते हैं, फिर एक डेटा कनेक्शन बना सकते हैं और .csv आयात कर सकते हैं। "अल्पविराम" को सीमांकित करें, फिर "सामान्य" के बजाय सभी स्तंभों को पाठ के रूप में मानने का विकल्प चुनें।

संपादित करें: ओह, मैंने पूरी तरह से सवाल नहीं पढ़ा। आयात विज़ार्ड में, पहले कॉलम हेडर का चयन करें जिसे आप टेक्स्ट के रूप में आयात करना चाहते हैं, अंतिम कॉलम हेडर पर स्क्रॉल करें, और हेडर पर क्लिक करें। फिर "टेक्स्ट" रेडियल विकल्प चुनें।


2
हाँ, यह अच्छी तरह से काम करता है - जब तक कि फ़ाइल का एक्सटेंशन ".csv" नहीं है। +1
जीन-फ्रांकोइस कॉर्बेट

4

यदि आप निम्न कार्य करते हैं तो भी वेटमेलन का सुझाव काम करता है (.CSV के साथ भी):

  1. एक्सेल को खाली वर्कबुक या वर्कशीट में खोलें
  2. डेटा पर क्लिक करें> [बाहरी डेटा प्राप्त करें] पाठ से
  3. "पाठ आयात विज़ार्ड" का उपयोग करें जैसा कि वेटमेलन वर्णन करता है (कोमा सीमांकित, पहले कॉलम का चयन करें, अंतिम कॉलम को क्लिक करें, पाठ पर सब कुछ सेट करें)।

मुझे पता है कि यह अधिक कदम है, लेकिन कम से कम यह मुझे एक्सटेंशन बदलने के बिना सीएसवी को इस तरह से खोलने देता है


2

ध्यान रहे!

मैन्युअल पद्धति "एक्सेल → डेटा → का उपयोग करते समय → बाहरी डेटा प्राप्त करें → सभी कॉलम चुनें और टेक्स्ट चुनें" ......

यह केवल कॉलम को "पहली पंक्ति में डेटा है" (आमतौर पर हेडर पंक्ति) के पाठ को सेट करेगा। यह विज़ार्ड आपको स्तंभ को दाईं ओर नहीं दिखाता है जिसमें नीचे डेटा हो सकता है लेकिन पहली पंक्ति में नहीं। उदाहरण के लिए:

Row1Col1, Row1Col2, Row1Col3

Row2Col1, Row2Col2, Row2Col3, Row2Col4

आप आयात विज़ार्ड में कभी भी कोल 4 नहीं देखेंगे, इसलिए आपको आयात करने से पहले इसे सामान्य से टेक्स्ट फॉर्मेट में बदलने का विकल्प नहीं मिलेगा !!!!


1
एक अच्छी चेतावनी, 99.9999% समय के बाद से, लोग आयात विज़ार्ड में स्क्रॉल नहीं करते हैं, और फिर भी सभी कॉलमों को पकड़ना मुश्किल है। हालाँकि, तकनीकी रूप से, आप आयात विज़ार्ड में रहने के दौरान नीचे स्क्रॉल कर सकते हैं और अतिरिक्त कॉलम पकड़ सकते हैं जिनमें पहली पंक्ति में डेटा नहीं है।
GlennFromIowa

1

यहां जीन-फ्रांस्वा कॉर्बेट द्वारा ऊपर पोस्ट कोड की वैकल्पिक प्रक्रिया है

यह प्रक्रिया पाठ के रूप में स्वरूपित सभी स्तंभों के साथ एक्सेल में सीएसवी फ़ाइल आयात करेगी

Public Sub ImportCSVAsText()
    Dim TempWorkbook As Workbook
    Dim TempWorksheet As Worksheet
    Dim ColumnCount As Integer
    Dim FileName As Variant
    Dim ColumnArray() As Integer

    'Get the file name
    FileName = Application.GetOpenFilename(FileFilter:="All Files (*.*),*.*", FilterIndex:=1, Title:="Select the CSV file", MultiSelect:=False)

    If FileName = False Then Exit Sub

    Application.ScreenUpdating = False

    'Open the file temporarily to get the count of columns
    Set TempWorkbook = Workbooks.Open(FileName)
    ColumnCount = TempWorkbook.Sheets(1).Range("A1").SpecialCells(xlCellTypeLastCell).Column
    TempWorkbook.Close SaveChanges:=False

    'Resize the array to number of columns
    ReDim ColumnArray(1 To ColumnCount)

    For i = 1 To ColumnCount
        ColumnArray(i) = xlTextFormat
    Next i

    Set TempWorkbook = Workbooks.Add
    Set TempWorksheet = TempWorkbook.Sheets(1)

    Application.DisplayAlerts = False
    TempWorkbook.Sheets(2).Delete
    TempWorkbook.Sheets(2).Delete
    Application.DisplayAlerts = True

    With TempWorksheet.QueryTables.Add("TEXT;" & FileName, TempWorksheet.Cells(1, 1))
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1251
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = ColumnArray
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

End Sub

सुपरयूज़र में आपका स्वागत है, नए उत्तर को जोड़ने के बजाय, आपको कॉर्बेट के उत्तर को संपादित करना चाहिए और उसमें सुधार करना चाहिए। मुझे लगता है कि आपके पास अभी तक करने के लिए पर्याप्त प्रतिष्ठा नहीं है, लेकिन आप टिप्पणी में अपने परिवर्तनों को लिंक कर सकते हैं जहां आप उसे पढ़ने के लिए कहते हैं।
वेलास्टिमिल ओवसिक्क

0

यदि आप हमेशा एक ही डेटा (निरंतर रिकॉर्ड प्रारूप, लेआउट, आदि ...) का आयात कर रहे हैं, तो आप एक आयात मैक्रो का उपयोग करके एक्सेस मैक्रो लिख सकते हैं और फिर डेटा को वापस एक्सेल में डंप कर सकते हैं। यह हो सकता है समय। दूसरा तरीका जो मैंने किया है वह है VBA का उपयोग करना और एक बार में कार्यपत्रक एक रिकॉर्ड में डेटा पढ़ना और इसे पढ़ते समय पार्स करना। जहाँ तक मुझे पता है कि एक्सेल में आयात के दौरान एक डिफ़ॉल्ट प्रारूप सेट करने का कोई तरीका नहीं है और यहां तक ​​कि अगर आप इसे अगले फ़ाइल प्रकार के साथ समस्याओं का कारण बन सकते हैं तो आप पार्स करने का प्रयास करें।


1
यहाँ बात है - जब मैं इसे आयात करता हूँ तो पाठ स्ट्रिंग में कॉमा के बीच में होने के अलावा कोई पार्स करने की कोशिश नहीं कर रहा हूँ। अगर मुझे इसकी आवश्यकता है कि इसे एक निश्चित तरीके से स्वरूपित किया जाए, तो मैं ऐसा कर सकता हूं (जैसे तारीख के तार बनाने की तारीख, आदि), लेकिन मुझे केवल शुरुआत में अकेले डेटा की आवश्यकता है। इतना कठिन क्यों होना चाहिए?
विलियम गुन

0

अनुरोध के रूप में, मेरी टिप्पणी को एक उत्तर के रूप में प्रस्तुत करना (थोड़ी और जानकारी जोड़ी गई):

अरे स्क्रिप्टिंग गाइ ने CSV को एक्सेल में आयात करने के बारे में एक ब्लॉग लेख किया था जिसमें आपके लिए कुछ उपयोगी टिडबिट हो सकते हैं। Powerhell के अंदर डेटा ऑब्जेक्ट के साथ खेलने से आप जो चाहें कर सकते हैं।

हालाँकि आलेख में विशेष रूप से केवल उन कक्षों में डेटा आयात करने का उल्लेख है जो संख्या प्रारूप छोड़ सकते हैं, यह संभव हो सकता है कि Excel ComObject के कुछ गुणों और विधियों के बजाय कच्चे पाठ के रूप में कोशिकाओं को दर्ज करने के लिए डेटा को बाध्य करने के लिए (या बल दें) आयात से पहले या बाद में पाठ में कोशिकाओं का प्रारूपण)।


0

अज्ञात कारणों से, भले ही आप स्पष्ट रूप से सभी स्तंभों के लिए प्रारूप प्रदान करते हों, यदि फ़ाइल एक्सटेंशन CSV है तो Excel इसे अनदेखा कर देगा।

कुछ विकल्प:

  • जैसा कि वेटमेलन सुझाव देते हैं , डेटा आयात करने के लिए एक क्वेरी बनाएं ।
    नुकसान: आपको 64-बिट मशीन पर CSV डेटाबेस ड्रायवर गुम हो सकते हैं।

  • जीन के कोड का उपयोग करें , लेकिन फ़ाइल को एक अस्थायी फ़ोल्डर में कॉपी करना और कॉपी के विस्तार को शामिल करना।
    नुकसान: मूल फ़ाइल का कोई लिंक नहीं (बचत कॉपी को अधिलेखित कर देगा); आपको बाद में कॉपी को मैन्युअल रूप से डिलीट करना होगा। फिर भी, आप मूल CSV पर मैन्युअल रूप से सेव कर सकते हैं।

  • नोटपैड में सीएसवी खोलें, Ctrl+A, Ctrl+C, एक्सेल, तो डाटा को पेस्ट - कॉलम के लिए पाठ, तो यह हमेशा की तरह जादूगर जहां एक ही बार में पाठ सभी स्तंभों सेट कर सकते हैं। यह पिछले विकल्प का एक अलग स्वाद है, क्योंकि यह एक्सेल से कीमती विस्तार को भी छिपाता है।
    नुकसान: मैनुअल।

  • एक बहुत ही सरल VBA लूप है जो पूरी फ़ाइल को मेमोरी में पढ़ता है और इसे शीट, सेल द्वारा सेल पर रखता है।
    नुकसान: धीमा, बदसूरत।


इन सभी तरीकों का नुकसान "मूल [CSV] फ़ाइल से लिंक नहीं है?" मुझे एक अस्थायी फ़ोल्डर में कॉपी करने और वहां एक्सटेंशन बदलने का विचार पसंद है ... कॉपी खोलते ही मूल (सीएसवी के रूप में) को भी अधिलेखित कर सकता है।
जीन-फ्रांकोइस कॉर्बेट

@ जीन-फ्रांस्वा कोर्बेट, मैं आयात विज़ार्ड का उपयोग हर समय करने के लिए आयात करता हूं। Excel 2010 में csv के विस्तार के साथ .vv फाइलें । मैं स्पष्ट रूप से कॉलम के प्रारूप को पाठ के रूप में निर्दिष्ट करता हूं और यह पाठ के रूप में सेल प्रारूप को बरकरार रखता है। शायद यह एक्सेल के पुराने संस्करणों के साथ एक मुद्दा था?
ग्लेनफ्रोमाइवा

-2

यदि मैं प्रश्न को सही ढंग से समझता हूं, तो इसे यहां बताए गए पेस्ट-स्पेशल में ट्रांसपोज़ विकल्प का उपयोग करके आसानी से हल किया जा सकता है

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