Excel को कुछ पाठ मानों को दिनांक में स्वचालित रूप से परिवर्तित करने से रोकें


526

क्या किसी को पता है कि अगर कोई टोकन है तो मैं अपने सीएसवी को एक निश्चित क्षेत्र के लिए जोड़ सकता हूं इसलिए एक्सेल इसे डेट में बदलने की कोशिश नहीं करता है?

मैं अपने आवेदन से एक .csv फ़ाइल लिखने की कोशिश कर रहा हूं और उनमें से एक मान एक तारीख की तरह पर्याप्त दिखने के लिए होता है जिसे एक्सेल स्वचालित रूप से पाठ से एक तिथि में परिवर्तित कर रहा है। मैंने अपने सभी पाठ फ़ील्ड्स (जिसमें वह तिथि के समान दिखता है) को दोहरे उद्धरण चिह्नों में डालने का प्रयास किया है, लेकिन इसका कोई प्रभाव नहीं है।


120
हाँ, जैसे कि जब 10000 उपयोगकर्ता नाम वाली फ़ाइल में "april25" जैसी एक होती है, जो डेट में परिवर्तित हो जाती है, और अंततः "apr-25" के रूप में संसाधित हो जाती है, जिसके परिणामस्वरूप "उपयोगकर्ता नाम नहीं मिला" त्रुटि, क्योंकि आपने नहीं किया उम्मीद है कि एक्सेल को बाकी के पाठ को छोड़ते हुए, फ़ाइल में 4000 रिकॉर्ड करने के लिए एक ही मूल्य में परिवर्तित किया जा सकता है। CSV रीडिंग कोड क्या लंगड़ा है; वास्तव में, पहले एक्स रिकॉर्ड के आधार पर प्रकार का अनुमान लगाना और उसके साथ रहना नहीं है? या यह सब पाठ छोड़ दें। अगर मैं चाहता हूं कि इसे "सामान्य" के रूप में स्वरूपित किया जाए, तो मैं इसे बाद में चुन सकता हूं। प्रारंभ से "सामान्य" सही मानकर, यह पाठ डेटा भ्रष्टाचार का जोखिम उठाता है।
त्रिनको

कॉपी और पेस्ट करते समय मेरे पास मुद्दा था। सभी समाधान खोजने के लिए, लक्ष्य कॉलम का चयन करें, इसे एक स्ट्रिंग / पाठ प्रारूप पर सेट करें, फिर स्रोत की प्रतिलिपि बनाएँ और केवल 'मान' के साथ एक विशेष पेस्ट (राइट-क्लिक) करें। मानों को संरक्षित करता है, कोई दिनांक स्वरूपण नहीं।
काई नैक

84
मैं सिर्फ यह जोड़ना चाहता हूं कि मैं एक्सेल के इस व्यवहार को एक गंभीर दोष मानता हूं। उन सभी लोगों के बारे में जो एक्सेल में आयात करने से पहले सीएसवी फ़ाइल की सामग्री को बदलने की लक्जरी नहीं है? या उन लोगों के बारे में क्या है जो CSV फ़ाइल में कई अन्य परिवर्तन करने के बाद भी इस समस्या का एहसास नहीं करते हैं? यह एक्सेल में CSV फ़ाइलों के साथ काम करता है एक गड़बड़ है।
डकैतपन

क्या आप DatatableJS का उपयोग कर रहे हैं? क्योंकि मुझे पहले से ही यह पता है कि यह कैसे करना है। यदि आपको इसकी आवश्यकता है तो आप इसे यहाँ पा सकते हैं: stackoverflow.com/a/36142043/4241058
रिचर्ड रेबेको

11
फ़ाइल का उपयोग करने के लिए ये सभी समाधान -> ओपन -> हमारे लिए ठीक काम आयात करें क्योंकि हम जानते हैं कि हम क्या कर रहे हैं, लेकिन यह दुनिया के अन्य 99.5% के लिए बेकार है, जो / से / भीतर से फाइलसिस्टम को नेविगेट करने में नहीं समझते हैं। आवेदन। वे एक फ़ाइल देखते हैं, इसका उपयोग करने के लिए वे उस पर डबल-क्लिक करते हैं। मैंने 25 साल लोगों को पढ़ाने में बिताए हैं कि कैसे ऑफिस एप्लिकेशन और राइटिंग कोड का उपयोग किया जाए जो उक्त ऑफिस एप्लिकेशन के लिए डेटा जेनरेट करता है, और / एप्लीकेशन / का उपयोग करके फाइल को देखने के लिए उपयोग करना लगभग सभी से परे है।
user2624417

जवाबों:


355

मैंने पाया है कि दोहरे उद्धरणों से पहले '=' लगाने से आप जो चाहते हैं वह पूरा हो जाएगा। यह डेटा को टेक्स्ट होने के लिए मजबूर करता है।

जैसे। = "2008-10-03", = "अधिक पाठ"

EDIT (अन्य पदों के अनुसार) : जेफिंकिन्स द्वारा उल्लेखित एक्सेल 2007 बग के कारण एंड्रयू द्वारा प्रस्तावित समाधान का उपयोग करना चाहिए :"=""2008-10-03"""


12
मैं इस उत्तर को स्वीकार कर रहा हूं क्योंकि 1) मेरी सीएसवी फ़ाइल केवल एक्सेल द्वारा उपयोग की जाएगी, और 2) यह लेखांकन के लिए है और इसमें शुरुआत में 'नहीं' हो सकता है, और 3) मैं उन्हें नहीं करना चाहता हूं एक आयात। मैं सिर्फ सीएसवी खोलना चाहता हूं।

5
महान! लेकिन की वजह से Excel 2007 बग का उपयोग समाधान एंड्रयू द्वारा प्रस्तावित : "=""2008-10-03"""। पोस्ट को अपडेट किया।
TMS

1
यह Excel 2010 में मेरे लिए काम नहीं करता है तो पाठ बहुत बड़ा है :(
स्टीव

7
यह काम करता है, क्योंकि जब एक्सेल "=" अक्षर को देखता है, तो वह इसके बाद की अभिव्यक्ति का मूल्यांकन करने का फैसला करता है। इस मामले में अभिव्यक्ति बस एक स्ट्रिंग शाब्दिक है और एक स्ट्रिंग शाब्दिक का मूल्य स्ट्रिंग की सामग्री है। इस प्रकार उद्धरण चिह्न जादुई रूप से गायब हो जाते हैं। आप CSV आयात के बाद = 1 + 2 + 3 डाल सकते हैं और मान 6 प्राप्त कर सकते हैं। आयात प्रक्रिया में सूत्र ही नष्ट नहीं होता है।
लोकोरी

4
इस दृष्टिकोण के साथ एक बड़ी समस्या है - यदि आप फ़ाइल को एक्सेल में खोलते हैं और संपादित करते हैं और फिर सहेजते हैं और इन सभी को फिर से खोलते हैं
ACV

150

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

समस्या न केवल पाठ क्षेत्रों में तारीखों के साथ है , बल्कि कुछ भी संख्यात्मक भी पाठ से संख्याओं में परिवर्तित हो जाती है। उदाहरण के एक जोड़े जहां यह समस्याग्रस्त है:

  • ज़िप / पोस्टल कोड
  • टेलीफ़ोन नंबर
  • सरकारी आईडी नंबर

जो कभी-कभी एक या एक से अधिक शून्य (0) से शुरू हो सकता है , जो संख्यात्मक में परिवर्तित होने पर फेंक दिया जाता है। या मान में ऐसे अक्षर होते हैं जो गणितीय संचालकों के साथ भ्रमित हो सकते हैं (जैसा कि तारीखों में: /, -)।

दो मामले जो मैं सोच सकता हूं कि "पूर्ववर्ती =" समाधान, जैसा कि पहले उल्लेख किया गया है, आदर्श नहीं हो सकता है

  • जहां फ़ाइल को एमएस एक्सेल (एमएस वर्ड के मेल मर्ज फंक्शन को ध्यान में रखते हुए) के अलावा किसी प्रोग्राम में इंपोर्ट किया जा सकता है।
  • जहां मानव-पठनीयता महत्वपूर्ण हो सकती है।

इसके आसपास काम करने के लिए मेरी हैक

यदि कोई मूल्य में एक गैर-संख्यात्मक और / या गैर-तिथि चरित्र को पूर्व / संलग्न करता है, तो मूल्य को पाठ के रूप में पहचाना जाएगा और परिवर्तित नहीं किया जाएगा। गैर-मुद्रण वर्ण अच्छा होगा क्योंकि यह प्रदर्शित मान को परिवर्तित नहीं करेगा। हालाँकि, सादा पुराना स्पेस कैरेक्टर (\ s, ASCII 32) इसके लिए काम नहीं करता है क्योंकि यह एक्सेल द्वारा कटा हुआ हो जाता है और फिर मूल्य फिर भी परिवर्तित हो जाता है। लेकिन कई अन्य मुद्रण और गैर-मुद्रण स्थान वर्ण हैं जो अच्छी तरह से काम करेंगे। हालांकि सबसे आसान है सरल टैब वर्ण (\ t, ASCII 9) जोड़ना (बाद में जोड़ना)।

इस दृष्टिकोण के लाभ:

  • कीबोर्ड से या आसानी से याद रखने वाला ASCII कोड (9) उपलब्ध है,
  • यह आयात को परेशान नहीं करता है,
  • आम तौर पर मेल मर्ज परिणामों को परेशान नहीं करता है (टेम्पलेट लेआउट के आधार पर - लेकिन आम तौर पर यह सिर्फ एक पंक्ति के अंत में एक विस्तृत स्थान जोड़ता है)। (यदि यह हालांकि एक समस्या है, तो अन्य वर्णों को देखें। उदाहरण के लिए शून्य-चौड़ाई वाला स्थान (ZWSP, Unicode U + 200B)
  • नोटपैड (आदि) में CSV देखने पर कोई बड़ी बाधा नहीं है,
  • और एक्सेल (या नोटपैड आदि) को खोजने / बदलने के द्वारा हटाया जा सकता है।
  • आपको CSV आयात करने की आवश्यकता नहीं है , लेकिन Excel में CSV खोलने के लिए बस डबल-क्लिक कर सकते हैं ।

यदि कोई कारण है कि आप टैब का उपयोग नहीं करना चाहते हैं, तो कुछ और उपयुक्त के लिए यूनिकोड तालिका में देखें।

एक अन्य विकल्प

XML फाइलें उत्पन्न करने के लिए हो सकता है, जिसके लिए एक निश्चित प्रारूप भी नए एमएस एक्सेल संस्करणों द्वारा आयात के लिए स्वीकार किया जाता है, और जो .XLS प्रारूप के समान बहुत सारे विकल्प की अनुमति देता है, लेकिन मुझे इसके साथ अनुभव नहीं है।

इसलिए विभिन्न विकल्प हैं। आपकी आवश्यकताओं / आवेदन के आधार पर, एक दूसरे से बेहतर हो सकता है।


इसके अलावा

यह कहने की आवश्यकता है कि MS Excel के नए संस्करण (2013+) ने स्प्रेडशीट प्रारूप में CSV को किसी भी अधिक नहीं खोला है - किसी के वर्कफ़्लो में एक और स्पीडबंप एक्सेल को कम उपयोगी बनाता है ... कम से कम, इसके चारों ओर प्राप्त करने के लिए निर्देश मौजूद हैं। उदाहरण देखें इस Stackoverflow: Excel 2013 के भीतर .csv फ़ाइलों को सही ढंग से कैसे प्रदर्शित करें?


6
मुझे \tअपने जुदाई चरित्र में जोड़ने के बाद सही अग्रणी शून्य मिला ;... लानत है एमएस ऑफिस, यह पता लगाने के लिए मुझे 2 मिनट से अधिक समय क्यों लगा?
मोर्टेन जेन्सेन

2
सभी मूल्यों के अंत में \ t जोड़ना वास्तव में चाल है। यह एक हैडी वर्कअराउंड है, लेकिन व्यवहार में यह ठीक काम करता है। मैं बराबर '=' के साथ सूत्र चाल के लिए इसे पसंद करता हूं, क्योंकि पूर्व में अन्य उपकरणों के साथ काम करना मुश्किल हो सकता है।
समुद्र

3
वहाँ पर्याप्त upvotes नहीं हैं जो आपके लिए मेरी कृतज्ञता व्यक्त कर सकते हैं। नोटपैड ++ ',' to 'to \ t, \ t' (पहले और अंतिम कॉलम को समायोजित करने के लिए) को खोजें और बदलें, एक आकर्षण की तरह काम करता है। धन्यवाद।
आसफ

1
मेरी MySQL क्वेरी में (PHP के माध्यम से CSV आउटपुट के लिए), मैंने CONCAT ('\ t' column_name) का उपयोग किया। की चाल भी की। धन्यवाद!
बस प्लेन हाई

1
महान विचार। काश, संख्या एक्सेल की तुलना में थोड़ी "चालाक" है, और टैब चाल के लिए गिर नहीं है। सबसे अच्छा विकल्प मैं एक प्रमुख के साथ आ सकता हूं ', क्योंकि यह थोड़े अच्छी तरह से समझा गया है और बहुत विचलित नहीं है ... लेकिन एक अदृश्य बेहतर होगा।
हीथ राफ्टी

101

जैरोडिंस द्वारा जैरोड के समाधान और इस मुद्दे पर काम करना, आप संशोधित कर सकते हैं

"May 16, 2011"

सेवा

"=""May 16, 2011"""

6
Excel 2010 में काम नहीं करता है यदि पाठ एक निश्चित लंबाई से अधिक है।
स्टीव

1
@ और, यह "फिक्स" समस्याओं का कारण होगा यदि आपको "तिथि को इनबेटीइन करने के लिए कहीं भी मान रखने की आवश्यकता है ।
पचेरियर

8
FYI करें, यदि आप एक्सेल फाइल को बचाते हैं तो = दूर हो जाता है और जब आप अगली बार खुलते हैं तो आप उसे एक वर्ग में वापस ला सकते हैं।
d512

मेरा अनुभव न तो स्टेव करता है और न ही d512। यह मेरे लिए आने वाले .csv में Excel 2013 में काम करता है, और .xlsx के रूप में सहेजने के बाद यह वापस नहीं आता है। डेटा की इस पंक्ति का उपयोग करके किसी को भी परीक्षण करना आसान है: "806676", "कोई नहीं", "41", "=" 16 मई, 2011 "", "100.00", "गलत"
tbc0

1
"806676","None","41","=""05-16-2011""","100.00","False"इसके बजाय @ tbc0 आज़माएं और आप देखेंगे कि एक सहेजा और पुनः लोड किया गया हाइफ़न पाठ खो देता है।
नेटमेज

65

मुझे एक ऐसी ही समस्या थी और यह वह वर्कअराउंड है जिसने सीएसवी फाइल कंटेंट को एडिट किए बिना मेरी मदद की:

यदि आपके पास फ़ाइल को ".csv" के अलावा कुछ और नाम देने की सुविधा है, तो आप इसे ".txt" एक्सटेंशन, जैसे "Myfile.txt" या "Myfile.csv.txt" के साथ नाम दे सकते हैं। फिर जब आप इसे एक्सेल में खोलते हैं (ड्रैग एंड ड्रॉप से ​​नहीं, बल्कि फाइल-> ओपन या मोस्ट रीसेंटली यूज्ड फाइल्स लिस्ट का उपयोग करके), एक्सेल आपको "टेक्स्ट इम्पोर्ट विजार्ड" प्रदान करेगा।

विज़ार्ड के पहले पृष्ठ में, फ़ाइल प्रकार के लिए "डिलीट किया गया" चुनें।

विज़ार्ड के दूसरे पृष्ठ में "," को सीमांकक के रूप में चुनें और यदि आपने अपने मान को उद्धरण द्वारा घेर लिया है, तो पाठ योग्यता भी चुनें।

तीसरे पृष्ठ में, प्रत्येक कॉलम को व्यक्तिगत रूप से चुनें और एक्सेल को आपके डेटा के साथ खिलवाड़ करने से रोकने के लिए प्रत्येक प्रकार के "सामान्य" के बजाय "टेक्स्ट" टाइप करें।

आशा है कि यह आपकी या किसी ऐसी ही समस्या से पीड़ित व्यक्ति की मदद करेगा!


2
ओह, वैसे मैं यह खोज करने वाला पहला व्यक्ति नहीं हूं। उभरते हुए वेब पेज / वेब पेज- net-read-cs- "पाठ"।
रेनबियर

यह दिनांक मानों के लिए काम कर सकता है, लेकिन यह उन चीजों के लिए काम नहीं करता है जो संख्यात्मक रूप में व्याख्या करते हैं। यदि आपकी स्ट्रिंग सभी संख्याएँ और कॉमा हैं, तो "टेक्स्ट" प्रारूप वैज्ञानिक संख्या प्रारूप होने जा रहा है।
माइकल - कहाँ है क्ले शिर्क

3
यह मेरे लिए पूरी तरह से काम करता है और इसमें .txt का नाम बदलने के अलावा मेरी फ़ाइल में कोई भी बदलाव शामिल नहीं है। धन्यवाद।
केविन

1
दुर्भाग्य से, एक्सेल केवल आपको पहले 6 कॉलम के लिए ऐसा करने देता है। यदि आपको और अधिक की आवश्यकता है, तो एक बेहतर तरीका यह है कि csv की सामग्री की नकल करें, एक्सेल फाइल बनाएं और खाली करें, सभी कॉलम / पंक्तियों का चयन करें और टेक्स्ट का प्रकार सेट करें, फिर सामग्री पेस्ट करें और डेटा का उपयोग करें। कॉलम का पाठ
नचोकाब

यह सबसे अच्छा समाधान है और इसे उत्तर के रूप में चिह्नित किया जाना चाहिए।
राब

28

चेतावनी: Excel '07 (कम से कम) में एक (nother) बग है: यदि किसी फ़ील्ड की सामग्री में अल्पविराम है, तो यह = "फ़ील्ड, सामग्री" को सही ढंग से पार्स नहीं करता है, बल्कि कॉमा के बाद सब कुछ डालता है क्षेत्र के बाद, उद्धरण चिह्नों की परवाह किए बिना।

केवल एक ही उपाय मैंने पाया है कि कार्य = को समाप्त करना है जब फ़ील्ड सामग्री में अल्पविराम शामिल होता है।

इसका मतलब यह हो सकता है कि कुछ फ़ील्ड हैं जो एक्सेल में बिल्कुल "सही" का प्रतिनिधित्व करना असंभव है, लेकिन अब तक मुझे विश्वास है कि कोई भी बहुत आश्चर्यचकित नहीं है।


मैंने अभी हाल ही में एक्सेल 2007 में इसका परीक्षण किया था, और यह मेरे लिए सही तरीके से काम करता है। हालांकि यदि उद्धरणों से पहले एक अग्रणी स्थान है, तो यह कॉमा को सही ढंग से पार्स नहीं करता है।
सनी

8
यह RFC 4180 के अनुसार बग नहीं प्रतीत होगा। क्षेत्र को उद्धृत करने का सही तरीका पूरे क्षेत्र को उद्धृत करना है और फिर दोहरे उद्धरण चिह्नों को उद्धृत करना है। इसलिए "=" "फ़ील्ड, सामग्री" "" tools.ietf.org/html/rfc4180
पीटर स्टीफेंस

2
@PeterStephens, यह काम नहीं करता है अगर field, contentइसके "भीतर है। जैसे"=""field, co""ntent"""
पचेरियर

1
@ स्पेसर संभवत: एम्बेडेड उद्धरण को दोहरे उद्धरण में बदलना होगा """"
एरिक

मैं पुष्टि कर सकता हूं @ ErikE का सुझाव सही है। मान के साथ एक फ़ील्ड के लिए 1"2, यदि आप इस ट्रिक का उपयोग करना चुनते हैं (जैसा कि इसे छोड़ने का विरोध केवल "1""2"फ़ाइल में है - एक्सेल पहले से ही इलाज के रूप में पाठ के रूप में होगा), तो एक्सेल-लक्ष्यीकरण CSV फ़ाइल में अंतिम सही स्ट्रिंग समाप्त होती है जा रहा है "=""1""""2"""
ताओ

22

C # में मेरी CSV फ़ाइल को लिखे जाने के लिए स्ट्रिंग बनाते समय मुझे इसे इस तरह से प्रारूपित करना था:

"=\"" + myVariable + "\""

2
यह मेरे लिए रेल में भी व्यर्थ है। धन्यवाद
Vieenay Siingh

3
जावा पर वेल
शोयो

पापा पार्से का उपयोग करके जावास्क्रिप्ट में मेरे लिए काम किया।
वॉब्सोरियानो

17

2018

एकमात्र उचित समाधान जो मेरे लिए काम किया (और सीएसवी को संशोधित किए बिना भी )।

एक्सेल 2010:

  1. नई कार्यपुस्तिका बनाएं
  2. डेटा> टेक्स्ट से> अपनी CSV फ़ाइल चुनें
  3. पॉपअप में, "डिलीट किया गया" रेडियो बटन चुनें, फिर "अगला>" पर क्लिक करें
  4. Delimiters चेकबॉक्स: केवल "कोमा" पर टिक करें और अन्य विकल्पों को अनचेक करें, फिर "अगला>" पर क्लिक करें
  5. "डेटा पूर्वावलोकन" में, दाईं ओर स्क्रॉल करें, फिर शिफ्ट पकड़ें और अंतिम कॉलम पर क्लिक करें (यह सभी कॉलम का चयन करेगा)। अब "कॉलम डेटा फॉर्मेट" में रेडियो बटन "टेक्स्ट" चुनें, फिर "फिनिश" पर क्लिक करें।

Excel office365: (क्लाइंट संस्करण)

  1. नई कार्यपुस्तिका बनाएं
  2. डेटा> टेक्स्ट / सीएसवी से> अपनी सीएसवी फ़ाइल चुनें
  3. डेटा प्रकार का पता लगाना> पता न लगाना

नोट: Excel office365 (वेब ​​संस्करण), जैसा कि मैं यह लिख रहा हूं, आप ऐसा नहीं कर पाएंगे।


3
यह CSV फ़ाइलों को पहले से बदले बिना काम करता है, इसलिए मुझे लगता है कि यह सही उत्तर होना चाहिए।
जैक

यह सही उत्तर की तरह दिखता है। मुझे उच्च उम्मीदें थीं। लेकिन MacOS (office365) पर, मैं सभी स्तंभों का चयन नहीं कर सकता : पाठ आयात विज़ार्ड में दिखाई गई पूर्वावलोकन विंडो में कोई क्षैतिज स्क्रॉल नहीं है, जैसे कि मैं केवल दृश्य स्तंभों का चयन कर सकता हूं। मैंने बिना किसी लाभ के शॉर्ट कट (सीएमडी + ए, या अन्य चीजें) की कोशिश की। विकल्प "पता नहीं लगाता है" या तो मौजूद नहीं है। मेरा सबकुछ उजड़ गया।
मानतानीस

एक्सेल कार्यालय 365, फ़ाइल, विकल्प, डेटा का चयन करें। यदि आवश्यक हो तो विरासत डेटा आयात जादूगरों को दिखाने के लिए चेक बॉक्स हैं।
कर्ट

15

Excel 2010 में एक नई शीट खोलें। डेटा रिबन पर "टेक्स्ट से बाहरी डेटा प्राप्त करें" पर क्लिक करें। अपनी CSV फ़ाइल का चयन करें फिर "ओपन" पर क्लिक करें। अगला पर क्लिक करें"। "टैब" को अनचेक करें, "कोमा" के बगल में एक चेक मार्क रखें, फिर "अगला" पर क्लिक करें। पहले कॉलम पर कहीं भी क्लिक करें। जब तक आप अंतिम कॉलम में क्लिक नहीं कर सकते, तब तक शिफ्ट कुंजी को दबाए रखें, स्लाइडर को उस ओर खींचें। "टेक्स्ट" रेडियो बटन पर क्लिक करें और फिर "फिनिश" पर क्लिक करें

सभी कॉलम पाठ के रूप में आयात किए जाएंगे, जैसे वे CSV फ़ाइल में थे।


1
मैं एक ही समस्या में भाग गया, लेकिन @ रोब के निर्देशों का ध्यानपूर्वक पालन करना सही होगा! धन्यवाद
Milacay

2
टेक्स्ट असिस्टेंट का डेटा दुर्भाग्य से मल्टी-लाइन कोशिकाओं का समर्थन नहीं करता है। यदि इस तरह की मल्टी-लाइन टेक्स्ट का सामना किया जाता है, तो यह संपूर्ण आयातों को तोड़ते हुए पहली पंक्तियों को नई पंक्तियों में लिख देगा। यदि आप CSV फ़ाइल को डबल क्लिक करके खोलते हैं तो यह केवल लाइन ब्रेक को सही ढंग से व्याख्या करता है। धिक्कार है आप Microsoft ...
CodeManX

1
दुर्भाग्य से यह एक्सेल के यादृच्छिक स्वरूपण "सहायता" के मुद्दे को हल नहीं करता है - पाठ DEC1 को अभी भी तारीख Dec-01 में बदल दिया गया है । YYYY-MM-DD के पाठ के साथ ही DD / MM / YYYY पर स्विच किया जा रहा है। :(
बाराकस

12

अभी भी Microsoft Office 2016 रिलीज़ में कोई समस्या है, बल्कि हम में से उन लोगों के लिए परेशान कर रहे हैं जो MARC1, MARCH1, SEPT1 आदि जीन नामों के साथ काम कर रहे हैं। R में ".csv" फ़ाइल को जनरेट करने के बाद जो समाधान मुझे सबसे व्यावहारिक लगा है। फिर एक्सेल उपयोगकर्ताओं के साथ खोला / साझा किया जाएगा:

  1. पाठ के रूप में CSV फ़ाइल खोलें (नोटपैड)
  2. इसे कॉपी करें (ctrl + a, ctrl + c)।
  3. इसे एक नई एक्सेल शीट में पेस्ट करें-यह सभी एक कॉलम में लंबे टेक्स्ट स्ट्रिंग्स के रूप में पेस्ट होगा।
  4. इस कॉलम को चुनें / चुनें।
  5. डेटा पर जाएं- "कॉलम पर टेक्स्ट ...", विंडो खोले जाने पर "सीमांकित" (अगला) चुनें। जांचें कि "अल्पविराम" चिह्नित है (यह पहले से ही नीचे स्तंभों के लिए डेटा का पृथक्करण दिखाएगा) (अगला), इस विंडो में आप इच्छित कॉलम चुन सकते हैं और इसे पाठ के रूप में चिह्नित कर सकते हैं (सामान्य के बजाय) (समाप्त)।

HTH


मैनुअल प्रयास भी मेरे लिए अनुपयुक्त था। हालांकि, हाथ में हर संभावना को समाप्त करने के बाद, यह सबसे मजबूत और विश्वसनीय था।
एना मारिया मेंडेस-परेरा

फिर भी बैच प्रसंस्करण।
एना मारिया मेंडेस-परेरा

यह वास्तव में यहां सबसे अच्छा उत्तर है जिसमें कम से कम काम की आवश्यकता होती है। काश, आप फ़ाइल को पार्स न करने के लिए मजबूर करने के लिए कुछ विकल्प निर्धारित कर सकते।
रोल

तुम भी सभी के लिए अल्पविराम टैब के साथ, जगह ले सकता है तो यह होगा ऑटो deliminate
रोल

10

यहाँ पर सरल विधि है जिसका उपयोग हम यहाँ काम करते हैं जब पहली बार में csv फ़ाइल बनाते हैं, तो यह मानों को थोड़ा बदल देता है इसलिए यह सभी अनुप्रयोगों में उपयुक्त नहीं है:

सीएसवी में सभी मानों के लिए एक स्थान तैयार करें

यह स्थान "1", "2.3" और "-2.9e4" जैसी संख्याओं से एक्सेल द्वारा छीन लिया जाएगा, लेकिन "01/10/1993" जैसी तारीखों पर रहेगा और "TRUE" जैसे बूलियन, उन्हें परिवर्तित होने से रोकेंगे एक्सेल के आंतरिक डेटा प्रकार।

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


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

अंतरिक्ष अब अग्रणी शून्य की तिथि व्याख्या या स्ट्रिपिंग को रोकने के लिए काम नहीं करता है। लेकिन आप "\xA0"इसके बजाय गैर-ब्रेकिंग-स्पेस का उपयोग कर सकते हैं - जो काम करेगा।
चल रहा

8

(एक्सेल 2003 मानकर ...)

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


8
यह एक उत्कृष्ट पसंद है अगर मैं उपयोगकर्ता को आयात प्रक्रिया का उपयोग करने के लिए मजबूर कर सकता हूं।

यह वास्तव में समस्या को हल करने में मदद नहीं करता है, क्योंकि TEXT कॉलम में नंबर .csv में निर्यात होने पर NUMBERS में बदल जाएंगे ...
Chonez

8

यह एकमात्र तरीका है जो मुझे पता है कि फ़ाइल के अंदर गड़बड़ किए बिना इसे कैसे पूरा किया जाए। एक्सेल के साथ हमेशा की तरह, मैंने घंटों तक डेस्क पर अपना सिर पीट कर यह सीखा।

.Csv फ़ाइल एक्सटेंशन को .txt में बदलें; जब यह खोला जाता है तो यह एक्सेल को ऑटो-कन्वर्ज़िंग फाइल से रोक देगा। यहां बताया गया है कि मैं यह कैसे करता हूं: एक्सेल को खाली वर्कशीट में खोलें, रिक्त शीट को बंद करें, फिर फ़ाइल => खोलें और .txt एक्सटेंशन के साथ अपनी फ़ाइल चुनें। यह एक्सेल को "टेक्स्ट इम्पोर्ट विजार्ड" खोलने के लिए मजबूर करता है, जहाँ यह आपसे सवाल पूछेगा कि आप फ़ाइल की व्याख्या कैसे करना चाहते हैं। पहले आप अपना सीमांकक (अल्पविराम, टैब, आदि ...) चुनते हैं, फिर (यहां महत्वपूर्ण भाग) आप स्तंभों का एक सेट चुनते हैं और स्वरूपण का चयन करते हैं। यदि आप चाहते हैं कि फ़ाइल में वास्तव में क्या है, तो "टेक्स्ट" चुनें और एक्सेल प्रदर्शित करेगा कि क्या सीमांकक के बीच है।


यह मेरे लिए ठीक है 2015-03-03 मैक 2011 के लिए एक्सेल के साथ काम करना (संस्करण 14.4.8 150116), एसओ प्रश्न में डेटा के साथ काम करना awk- तारीख जैसे मूल्यों के सुधार से बचें , जहां समस्या एक्सेल के साथ है से awk, प्रश्न शीर्षक के बावजूद।
जोनाथन लेफ़लर

4

(एक्सेल 2007 और बाद में)

स्रोत फ़ाइल को संपादित किए बिना दिनांक प्रारूपों को "पता लगाने" के लिए बाध्य करने के लिए कैसे बाध्य करें

कोई एक:

  • फ़ाइल को .txt के रूप में नाम बदलें
  • यदि आप ऐसा नहीं कर सकते हैं, तो सीधे CSV फ़ाइल को एक्सेल में खोलने के बजाय, एक नई कार्यपुस्तिका बनाएं
    Data > Get external data > From Text
    और फिर अपना CSV चुनें।

किसी भी तरह से, आपको आयात विकल्पों के साथ प्रस्तुत किया जाएगा, बस प्रत्येक कॉलम का चयन करें जिसमें तिथियां हों और "टेक्स्ट" को "सामान्य" नहीं के रूप में प्रारूपित करने के लिए कहें।


4

मैंने इसी समस्या के लिए जो किया है वह प्रत्येक सीएसवी मूल्य से पहले निम्नलिखित जोड़ना था: "=" "" और प्रत्येक CSV मान के बाद एक डबल उद्धरण, एक्सेल में फ़ाइल खोलने से पहले। उदाहरण के लिए निम्नलिखित मान लें:

012345,00198475

Excel में खोलने से पहले इन्हें बदल दिया जाना चाहिए:

"="""012345","="""00198475"

ऐसा करने के बाद, प्रत्येक सेल मान Excel में एक सूत्र के रूप में दिखाई देता है और इसलिए इसे संख्या, दिनांक आदि के रूप में स्वरूपित नहीं किया जाएगा। उदाहरण के लिए, 012345 का मान इस प्रकार दिखाई देता है:

="012345"

एक अन्य दृष्टिकोण सीएसवी में संख्या को संग्रहीत कर रहा है 1234500198475E-8; इस तरह से एक्सेल में आगे की गणना अभी भी संभव होगी।
बर्ट ब्रूएनोघे

4

यहां प्रस्तुत कोई भी समाधान अच्छा समाधान नहीं है। यह व्यक्तिगत मामलों के लिए काम कर सकता है, लेकिन केवल तभी जब आप अंतिम प्रदर्शन के नियंत्रण में हों। मेरा उदाहरण लें: मेरा काम उन उत्पादों की सूची तैयार करता है जो वे खुदरा को बेचते हैं। यह CSV प्रारूप में है और इसमें भाग-कोड हैं, उनमें से कुछ शून्य से शुरू होते हैं, निर्माताओं द्वारा निर्धारित (हमारे नियंत्रण में नहीं)। अग्रणी जीरो को हटा दें और आप वास्तव में किसी अन्य उत्पाद से मेल खा सकते हैं। खुदरा ग्राहक बैक-एंड प्रोसेसिंग प्रोग्राम के कारण CSV प्रारूप में सूची चाहते हैं, जो कि हमारे नियंत्रण से बाहर है और प्रति ग्राहक भिन्न है, इसलिए हम CSV फ़ाइलों के प्रारूप को नहीं बदल सकते। कोई उपसर्ग '=' नहीं, और न ही जोड़े गए टैब। कच्चे CSV फ़ाइलों में डेटा सही है; जब ग्राहक एक्सेल में उन फाइलों को खोलते हैं तो समस्याएं शुरू हो जाती हैं। और कई ग्राहक वास्तव में कंप्यूटर प्रेमी नहीं हैं। वे केवल ईमेल अनुलग्नक को खोल सकते हैं और सहेज सकते हैं। हम डेटा को दो अलग-अलग स्वरूपों में प्रदान करने के बारे में सोच रहे हैं: एक एक्सेल फ्रेंडली के रूप में (एक टीएबी जोड़कर ऊपर सुझाए गए विकल्पों का उपयोग करके, दूसरा 'मास्टर' के रूप में। लेकिन यह इच्छाधारी सोच हो सकती है क्योंकि कुछ ग्राहक समझ नहीं पाएंगे कि क्यों हमें ऐसा करने की आवश्यकता है। इस बीच हम यह बताते रहना जारी रखते हैं कि वे कभी-कभी अपने स्प्रैडशीट में 'गलत' डेटा क्यों देखते हैं। जब तक कि Microsoft एक उचित परिवर्तन नहीं करता है, तब तक मुझे इसके लिए कोई उचित समाधान दिखाई नहीं देता है, जब तक कि अंत-उपयोगकर्ताओं पर कोई नियंत्रण नहीं होता है। फ़ाइलों का उपयोग करें। लेकिन यह इच्छाधारी सोच हो सकती है क्योंकि कुछ ग्राहक यह नहीं समझ पाएंगे कि हमें ऐसा करने की आवश्यकता क्यों है। इस बीच हम बताते रहना जारी रखते हैं कि वे कभी-कभी अपने स्प्रेडशीट में 'गलत' डेटा क्यों देखते हैं। जब तक Microsoft एक उचित परिवर्तन नहीं करता है, तब तक मुझे इसके लिए कोई उचित समाधान दिखाई नहीं देता है, जब तक कि किसी का कोई नियंत्रण नहीं है कि अंतिम उपयोगकर्ता फ़ाइलों का उपयोग कैसे करते हैं। लेकिन यह इच्छाधारी सोच हो सकती है क्योंकि कुछ ग्राहक यह नहीं समझ पाएंगे कि हमें ऐसा करने की आवश्यकता क्यों है। इस बीच हम बताते रहना जारी रखते हैं कि वे कभी-कभी अपने स्प्रेडशीट में 'गलत' डेटा क्यों देखते हैं। जब तक Microsoft एक उचित परिवर्तन नहीं करता है, तब तक मुझे इसके लिए कोई उचित समाधान दिखाई नहीं देता है, जब तक कि किसी का कोई नियंत्रण नहीं है कि अंतिम उपयोगकर्ता फ़ाइलों का उपयोग कैसे करते हैं।


यदि आपके डेटा के बाईं ओर एक अतिरिक्त स्थान मायने नहीं रखता है, तो आप एक्सेल की समस्याओं "\xA0"को अपने डेटा पर प्रीपेडिंग (गैर-ब्रेकिंग-स्पेस) करके ठीक कर सकते हैं ।
चल रहा

3

मुझे लगता है कि इस सप्ताह इस सम्मेलन में जुस आए, जो एक उत्कृष्ट दृष्टिकोण है, लेकिन मैं इसे कहीं भी संदर्भित नहीं कर सकता। क्या कोई इससे परिचित है? क्या आप इसके लिए एक स्रोत का हवाला दे सकते हैं? मैंने घंटों और घंटों तक नहीं देखा है लेकिन मुझे उम्मीद है कि कोई इस दृष्टिकोण को पहचान लेगा।

उदाहरण 1: = ("012345678905") 012345678905 के रूप में प्रदर्शित होता है

उदाहरण 2: = ("1954-12-12") 1954-12-12 को प्रदर्शित करता है , न कि 12/12/1954 को


2

एक्सेल नहीं है। Windows सूत्र, डेटा को दिनांक और स्वत: सुधार के रूप में पहचानता है। आपको विंडोज सेटिंग्स को बदलना होगा।

"नियंत्रण कक्ष" (-> "क्लासिक दृश्य पर स्विच करें") -> "क्षेत्रीय और भाषा विकल्प" -> टैब "क्षेत्रीय विकल्प" -> "अनुकूलित करें ..." -> टैब "संख्या" -> और फिर प्रतीकों को बदलें आप जो चाहते हैं उसी के अनुसार।

http://www.pcreview.co.uk/forums/enable-disable-auto-convert-number-date-t3791902.html

यह आपके कंप्यूटर पर काम करेगा, यदि ये सेटिंग्स आपके ग्राहकों के कंप्यूटर पर उदाहरण के लिए नहीं बदली गई हैं तो वे डेटा के बजाय दिनांक देखेंगे।


2

नमस्ते मैं एक ही मुद्दा है,

मैं इस vbscipt को एक और CSV फ़ाइल बनाने के लिए लिखता हूँ। नई CSV फ़ाइल में प्रत्येक फ़ील्ड के फ़ॉन्ट में एक स्थान होगा, इसलिए एक्सेल इसे पाठ के रूप में समझेगा।

तो आप नीचे दिए गए कोड के साथ एक .vbs फ़ाइल बनाएँ (उदाहरण के लिए Rev_CSV.vbs), इसे सहेजें और बंद करें। अपनी मूल फ़ाइल को अपनी vbscript फ़ाइल में खींचें और छोड़ें । यह एक ही स्थान पर नाम दर्ज करने के लिए "SPACE_ADDED" के साथ एक नई फ़ाइल बनाएगा।

Set objArgs = WScript.Arguments

Set objFso = createobject("scripting.filesystemobject")

dim objTextFile
dim arrStr ' an array to hold the text content
dim sLine  ' holding text to write to new file

'Looping through all dropped file
For t = 0 to objArgs.Count - 1
    ' Input Path
    inPath = objFso.GetFile(wscript.arguments.item(t))

    ' OutPut Path
    outPath = replace(inPath, objFso.GetFileName(inPath), left(objFso.GetFileName(inPath), InStrRev(objFso.GetFileName(inPath),".") - 1) & "_SPACE_ADDED.csv")

    ' Read the file
    set objTextFile = objFso.OpenTextFile(inPath)


    'Now Creating the file can overwrite exiting file
    set aNewFile = objFso.CreateTextFile(outPath, True) 
    aNewFile.Close  

    'Open the file to appending data
    set aNewFile = objFso.OpenTextFile(outPath, 8) '2=Open for writing 8 for appending

    ' Reading data and writing it to new file
    Do while NOT objTextFile.AtEndOfStream
        arrStr = split(objTextFile.ReadLine,",")

        sLine = ""  'Clear previous data

        For i=lbound(arrStr) to ubound(arrStr)
            sLine = sLine + " " + arrStr(i) + ","
        Next

        'Writing data to new file
        aNewFile.WriteLine left(sLine, len(sLine)-1) 'Get rid of that extra comma from the loop


    Loop

    'Closing new file
    aNewFile.Close  

Next ' This is for next file

set aNewFile=nothing
set objFso = nothing
set objArgs = nothing

2

अपनी सीएसवी फ़ाइल को संशोधित किए बिना आप कर सकते हैं:

  1. एक्सेल फॉर्मेट सेल्स विकल्प को "टेक्स्ट" में बदलें
  2. फिर csv कोशिकाओं को परिभाषित करने के लिए "पाठ आयात विज़ार्ड" का उपयोग करना।
  3. एक बार आयातित डेटा को हटा दें
  4. तो बस सादे पाठ के रूप में पेस्ट करें

एक्सेल ठीक से प्रारूपित होगा और आपके सीएसवी कोशिकाओं को अलग करेगा क्योंकि पाठ स्वरूपित ऑटो तिथि स्वरूपों की अनदेखी करता है।

एक मूर्खतापूर्ण काम के आसपास, लेकिन यह आयात करने से पहले सीएसवी डेटा को संशोधित करने के लिए धड़कता है। एंडी बेयर्ड और रिचर्ड ने इस पद्धति को पसंद किया, लेकिन एक महत्वपूर्ण कदम से चूक गए।


1

मुझे पता है कि यह एक पुराना धागा है। मेरे जैसे लोगों के लिए, जिनके पास अभी भी पॉवरशेल कॉम ऑब्जेक्ट के माध्यम से कार्यालय 2013 का उपयोग करने की यह समस्या है, ऑपेंथेक्ट विधि का उपयोग कर सकते हैं । समस्या यह है कि इस पद्धति में कई तर्क हैं, जो कभी-कभी पारस्परिक अनन्य होते हैं। इस समस्या को हल करने के लिए आप इस पोस्ट में शुरू किए गए इनवोक-नेमपैरमीटर विधि का उपयोग कर सकते हैं । एक उदाहरण होगा

$ex = New-Object -com "Excel.Application"
$ex.visible = $true
$csv = "path\to\your\csv.csv"
Invoke-NamedParameter ($ex.workbooks) "opentext" @{"filename"=$csv; "Semicolon"= $true}

दुर्भाग्य से मुझे पता चला कि यह विधि किसी भी तरह से csv पार्सिंग को तोड़ती है जब कोशिकाओं में लाइनब्रेक होते हैं। यह सीएसवी द्वारा समर्थित है, लेकिन माइक्रोसेफ्ट्स कार्यान्वयन को खराब किया जा रहा है। इसके अलावा यह किसी भी तरह जर्मन विशिष्ट वर्ण का पता नहीं लगा। इसे सही संस्कृति देने से इस व्यवहार में बदलाव नहीं आया। सभी फ़ाइलें (csv और स्क्रिप्ट) utf8 एन्कोडिंग के साथ सहेजी जाती हैं। पहले मैंने सेल द्वारा सीएसवी सेल डालने के लिए निम्न कोड लिखा था।

$ex = New-Object -com "Excel.Application"
$ex.visible = $true;
$csv = "path\to\your\csv.csv";
$ex.workbooks.add();
$ex.activeWorkbook.activeSheet.Cells.NumberFormat = "@";
$data = import-csv $csv -encoding utf8 -delimiter ";"; 
$row = 1; 
$data | %{ $obj = $_; $col = 1; $_.psobject.properties.Name |%{if($row -eq1){$ex.ActiveWorkbook.activeSheet.Cells.item($row,$col).Value2= $_ };$ex.ActiveWorkbook.activeSheet.Cells.item($row+1,$col).Value2 =$obj.$_; $col++ }; $row++;}

लेकिन यह चरम रूप से धीमा है, यही वजह है कि मैंने एक विकल्प की तलाश की। स्पष्ट रूप से एक्सेल आपको एक मैट्रिक्स के साथ कोशिकाओं की श्रेणी के मान सेट करने की अनुमति देता है। इसलिए मैंने इस ब्लॉग में csv को एक मल्टीएरे में बदलने के लिए एल्गोरिथ्म का उपयोग किया ।

function csvToExcel($csv,$delimiter){
     $a = New-Object -com "Excel.Application"
     $a.visible = $true

    $a.workbooks.add()
     $a.activeWorkbook.activeSheet.Cells.NumberFormat = "@"
     $data = import-csv -delimiter $delimiter $csv; 
     $array = ($data |ConvertTo-MultiArray).Value
     $starta = [int][char]'a' - 1
     if ($array.GetLength(1) -gt 26) {
         $col = [char]([int][math]::Floor($array.GetLength(1)/26) + $starta) + [char](($array.GetLength(1)%26) + $Starta)
     } else {
         $col = [char]($array.GetLength(1) + $starta)
     }
     $range = $a.activeWorkbook.activeSheet.Range("a1:"+$col+""+$array.GetLength(0))
     $range.value2 = $array;
     $range.Columns.AutoFit();
     $range.Rows.AutoFit();
     $range.Cells.HorizontalAlignment = -4131
     $range.Cells.VerticalAlignment = -4160
}

 function ConvertTo-MultiArray {
     param(
         [Parameter(Mandatory=$true, Position=1, ValueFromPipeline=$true)]
         [PSObject[]]$InputObject
     )
     BEGIN {
         $objects = @()
         [ref]$array = [ref]$null
     }
     Process {
         $objects += $InputObject
     }
     END {
         $properties = $objects[0].psobject.properties |%{$_.name}
         $array.Value = New-Object 'object[,]' ($objects.Count+1),$properties.count
         # i = row and j = column
         $j = 0
         $properties |%{
             $array.Value[0,$j] = $_.tostring()
             $j++
         }
         $i = 1
         $objects |% {
             $item = $_
             $j = 0
             $properties | % {
                 if ($item.($_) -eq $null) {
                     $array.value[$i,$j] = ""
                 }
                 else {
                     $array.value[$i,$j] = $item.($_).tostring()
                 }
                 $j++
             }
             $i++
         }
         $array
     } 
} 
csvToExcel "storage_stats.csv" ";"

आप उपरोक्त कोड का उपयोग कर सकते हैं क्योंकि यह किसी भी सीएसवी को एक्सेल में बदलना चाहिए। बस सीएसवी और नीचे स्थित सीमांकक चरित्र को पथ बदलें।


बहुत जटिल
रोल

1

मेरे मामले में, आर का उपयोग करके उत्पन्न एक सीएसवी फ़ाइल में "सेप्ट 8" को एक्सेल 2013 द्वारा "8-सेप्ट" में परिवर्तित किया गया था। xlsx प्रारूप में आउटपुट फ़ाइल उत्पन्न करने के लिए xlsx पैकेज में write.xlsx2 () फ़ंक्शन का उपयोग करके समस्या को हल किया गया था। , जिसे एक्सेल द्वारा अवांछित रूपांतरण के बिना लोड किया जा सकता है। इसलिए, यदि आपको एक सीएसवी फ़ाइल दी जाती है, तो आप इसे आर में लोड करने की कोशिश कर सकते हैं और इसे राइट.xlsx2 () फ़ंक्शन का उपयोग करके xlsx में परिवर्तित कर सकते हैं।


मुझे नहीं पता कि आपका उत्तर क्यों अस्वीकृत है। यह कम से कम उन लोगों के लिए उपयोगी है जो आर का उपयोग कर रहे हैं। इस उत्तर ने मेरी मदद की। धन्यवाद :)
श्रीहरि केबी

1

Google ड्राइव (या यदि आप मैक पर हैं, तो नंबर) का उपयोग करके वर्कअराउंड:

  1. Excel में डेटा खोलें
  2. पाठ के लिए गलत डेटा वाले कॉलम का प्रारूप सेट करें (प्रारूप> कक्ष> संख्या> पाठ)
  3. .Csv को Google डिस्क में लोड करें, और इसे Google पत्रक के साथ खोलें
  4. आपत्तिजनक कॉलम कॉपी करें
  5. टेक्स्ट के रूप में एक्सेल में पेस्ट कॉलम (एडिट> पेस्ट स्पेशल> टेक्स्ट)

वैकल्पिक रूप से यदि आप चरण 3 के लिए एक मैक पर हैं तो आप संख्याओं में डेटा खोल सकते हैं।


बिना किसी संकल्प के घंटों तक इस पर काम करने के बजाय यह एक समाधान है।
imsrgadich

1

(EXCEL 2016 और बाद में, वास्तव में मैंने पुराने संस्करणों में कोशिश नहीं की है)

  1. नया खाली पृष्ठ खोलें
  2. टैब पर जाएं "डेटा"
  3. "टेक्स्ट / सीएसवी से" पर क्लिक करें और अपनी सीएसवी फ़ाइल चुनें
  4. पूर्वावलोकन में जांचें कि क्या आपका डेटा सही है।
  5. जब पृष्ठ में कुछ कॉलम "संपादित करें" पर क्लिक करें और फिर कॉलम के प्रमुख में कैलेंडर पर क्लिक करके पाठ का चयन करें
  6. "बंद करें और लोड करें" पर क्लिक करें

0

2007 के माध्यम से Excel 2003 में ऐसा करने का एक सरल तरीका ठीक पाया गया। एक रिक्त xls वर्कबुक खोलें। फिर डेटा मेनू पर जाएं, बाहरी डेटा आयात करें। अपनी csv फ़ाइल का चयन करें। विज़ार्ड के माध्यम से जाओ और फिर "कॉलम डेटा फॉर्मेट" में किसी भी कॉलम का चयन करें जिसे "पाठ" के लिए मजबूर किया जाना है। यह उस संपूर्ण कॉलम को एक पाठ प्रारूप के रूप में आयात करेगा, जो एक्सेल को किसी भी विशिष्ट कोशिकाओं को एक तिथि के रूप में इलाज करने की कोशिश करने से रोकता है।


0

यह समस्या अभी भी मैक ऑफिस 2011 और ऑफिस 2013 में मौजूद है, मैं इसे होने से नहीं रोक सकता। यह एक ऐसी बुनियादी बात लगती है।

मेरे मामले में, सीएसवी के भीतर "1 - 2" और "7 - 12" जैसे मूल्य उल्टे अल्पविराम के भीतर सही ढंग से संलग्न थे, यह स्वचालित रूप से एक्सेल के भीतर एक तिथि में परिवर्तित हो जाता है, यदि आप बाद में इसे सिर्फ सादे पाठ में बदलने की कोशिश करते हैं तो आपको मिलेगा दिनांक का एक संख्या निरूपण जैसे 43768। इसके अतिरिक्त यह बारकोड और EAN संख्या में पाए गए बड़ी संख्या में सुधार कर 123E + संख्याओं को फिर से परिवर्तित नहीं कर सकता है।

मैंने पाया है कि Google डिस्क के Google पत्रक संख्याओं को दिनांक में परिवर्तित नहीं करते हैं। बारकोड में प्रत्येक 3 वर्णों में अल्पविराम होते हैं लेकिन इन्हें आसानी से हटा दिया जाता है। यह मैक / विंडोज सीएसवी से निपटने के दौरान विशेष रूप से सीएसवी को वास्तव में अच्छी तरह से संभालता है।

किसी समय किसी को बचा सकते हैं।


0

सबसे आसान समाधान मैं आज यह पता लगा।

  • वर्ड में खोलें
  • सभी डैश को एन डैश से बदलें
  • सहेजें और बंद करें
  • एक्सेल में खोलें

एक बार जब आप संपादन कर लेते हैं, तो आप इसे एन वर्ड्स को फिर से हाइफ़न के साथ बदलने के लिए वर्ड में फिर से खोल सकते हैं।


0

मैं इसे क्रेडिट कार्ड नंबरों के लिए करता हूं, जो वैज्ञानिक संकेतन में परिवर्तित होते रहते हैं: मैं अपने .csv को Google पत्रक में आयात करता हूं। आयात विकल्प अब संख्यात्मक मानों की स्वचालित स्वरूपण को अक्षम करने की अनुमति देते हैं। मैंने प्लेन टेक्स्ट के लिए कोई भी संवेदनशील कॉलम सेट किया और xlsx के रूप में डाउनलोड किया।

यह एक भयानक वर्कफ़्लो है, लेकिन कम से कम मेरे मूल्यों को वैसे ही छोड़ दिया जाता है जैसा उन्हें होना चाहिए।


यदि आप कुछ अन्य उत्तरों के माध्यम से पढ़ने की जहमत उठाते हैं, तो आप देखेंगे कि किसी ने पहले से ही यह सुझाव दिया है
लॉरेल

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

लेकिन आप CSV फ़ाइल आयात करने और शीट्स से परेशान न होने के लिए एक्सेल में टेक्स्ट इंपोर्ट का उपयोग कर सकते हैं, जैसा कि अन्य उत्तरों में उल्लेखित है।
नेटमैसेज

0

मैंने इस vba मैक्रो को बनाया जो मूल रूप से संख्याओं को चिपकाने से पहले आउटपुट रेंज को टेक्स्ट के रूप में प्रारूपित करता है। मेरे लिए एकदम सही काम करता है जब मैं एक्सेल की तारीखों की व्याख्या किए बिना 8/11, 23/6, 1/3 आदि जैसे मूल्यों को चिपकाना चाहता हूं।

Sub PasteAsText()
' Created by Lars-Erik Sørbotten, 2017-09-17
Call CreateSheetBackup

Columns(ActiveCell.Column).NumberFormat = "@"

Dim DataObj As MSForms.DataObject
Set DataObj = New MSForms.DataObject
DataObj.GetFromClipboard

ActiveCell.PasteSpecial

End Sub

मुझे यह जानने में बहुत दिलचस्पी है कि क्या यह अन्य लोगों के लिए भी काम करता है। मैं थोड़ी देर के लिए इस समस्या का हल ढूंढ रहा हूं, लेकिन मैंने इसके लिए एक त्वरित vba समाधान नहीं देखा है, जिसमें इनपुट पाठ के सामने 'सम्मिलित करना' शामिल नहीं था। यह कोड डेटा को उसके मूल रूप में बरकरार रखता है।


-1

यदि आप क्षेत्र की शुरुआत में एक उल्टा अल्पविराम लगाते हैं, तो इसे पाठ के रूप में व्याख्या किया जाएगा।

उदाहरण: 25/12/2008बन जाता है'25/12/2008

आयात करते समय आप फ़ील्ड प्रकार का चयन करने में भी सक्षम होते हैं।


9
मुझे अपने डेटा की शुरुआत में 'a' नहीं चाहिए।

27
-1। एक्सेल में सीधे प्रवेश करने पर 'केवल काम करता है, लेकिन यह CSV में काम नहीं करता है - आयात के बाद एक्सेल सेल में आपके पास अतिरिक्त' वर्ण होगा।
TMS

-1

एक वैकल्पिक विधि:

उस कॉलम का प्रारूप परिवर्तित करें जिसे आप 'टेक्स्ट' में बदलना चाहते हैं। उन सभी कक्षों का चयन करें जिन्हें आप संरक्षित करना चाहते हैं, कॉपी करें। उन कॉलमों को अचयनित किए बिना, "संपादित करें> विशेष चिपकाएँ> मानों पर क्लिक करें"

CSV के रूप में सहेजें। ध्यान दें कि यह वह अंतिम चीज़ है जो आप फ़ाइल में करते हैं क्योंकि जब आप इसे फिर से खोलते हैं, तो यह स्वयं को दिनांक के रूप में प्रारूपित करेगा क्योंकि CSV फ़ाइलों में सेल प्रारूप को सहेजा नहीं जा सकता है।

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