डेटा और स्प्रेडशीट · CSV क्लीनर
Excel चुपचाप CSV फ़ील्ड्स को दूषित क्यों करता है: अग्रणी शून्य, दिनांक और लंबी ID
· यह क्यों मायने रखती है
CAसवी डेटा-सफाई स्प्रेडशीट
स्प्रेडशीट में CSV को खोलना तटस्थ नहीं है: पोस्टकोड शून्य खो देते हैं, कोड दिनांक बन जाते हैं और लंबे पहचानकर्ता वैज्ञानिक नोटेशन में बदल जाते हैं। यह पोस्ट बताती है कि ऐसा क्यों होता है, क्या पुनर्प्राप्त नहीं किया जा सकता है, और कच्ची फ़ाइल को कैसे बरकरार रखा जाए।
एक फ़ाइल जो किसी के खुलने तक ठीक थी - पोस्टकोड 01234 1234 बन जाता है, और क्षति वापस सहेज ली जाती है
एक फ़ाइल पोस्टकोड 01234 के साथ एक स्रोत सिस्टम छोड़ती है, एक स्प्रेडशीट में खोली जाती है, और 1234 के साथ विश्लेषक के पास लौट आती है। मूल CSV विकृत नहीं था: इसमें अग्रणी शून्य वाला पाठ था। अंतर तब उत्पन्न हुआ जब एक प्रोग्राम ने अनुमान लगाया कि कॉलम संख्यात्मक था और फिर उसके व्याख्या किए गए मान को सहेजा। एक बार जब कोई स्रोत फ़ाइल को अधिलेखित कर देता है, तो बाद में सफाई टूल यह नहीं जान सकता कि 1234 का अर्थ 01234 था या 001234। किसी भी स्प्रेडशीट में निरीक्षण करने से पहले एक अछूता निर्यात रखें।
खुले में अनुमान लगाना टाइप करें - कैसे स्प्रेडशीट पाठ से संख्याओं, तिथियों और सूत्रों का अनुमान लगाती है, और क्यों CSV उन्हें अन्यथा कहने का कोई तरीका नहीं देता है
CSV पंक्तियों, विभाजकों और उद्धृत पाठ को व्यक्त करता है; यह प्रति-कॉलम संख्या, दिनांक या पोस्टकोड प्रकार घोषित नहीं करता है। एक स्प्रेडशीट को सीधे खोलने पर अनुमान लगाना चाहिए। अंकों से शुरू होने वाला मान एक संख्या बन सकता है, 03-04 को स्थान के अनुसार दिनांक के रूप में व्याख्या किया जा सकता है, और = से शुरू होने वाले मान को कुछ अनुप्रयोगों में एक सूत्र के रूप में व्याख्या किया जा सकता है। "01234" का उद्धरण CSV सीमांकक की सुरक्षा करता है, न कि स्वचालित आयात विज़ार्ड द्वारा पाठ के रूप में इसके भविष्य के वर्गीकरण की।
क्लासिक हताहत - अग्रणी शून्य, लंबे संख्यात्मक पहचानकर्ता, दिनांक के समान कुछ भी, और बराबर चिह्न से शुरू होने वाले मान
पोस्टकोड और एसकेयू में अग्रणी शून्य, स्प्रेडशीट संख्या प्रारूप की तुलना में अधिक महत्वपूर्ण अंकों वाले पहचानकर्ता संरक्षित किए जा सकते हैं, और अस्पष्ट दिनांक-दिखने वाली स्ट्रिंग क्लासिक हताहत हैं। वैज्ञानिक संकेतन स्वयं भ्रष्टाचार नहीं है - यह एक प्रदर्शन विकल्प है - लेकिन संख्यात्मक रूपांतरण के बाद एक लंबी ID सहेजने से सटीक अंक खो सकते हैं। अविश्वसनीय डेटा से फॉर्मूला-दिखने वाले मान एक अलग सुरक्षा जोखिम हैं। ToolAcre के CSV निर्यात में एक फॉर्मूला-इंजेक्शन-सुरक्षित विकल्प है जो जोखिम भरी शुरुआत को पूर्वलग्न करता है, इस ट्रेड-ऑफ के साथ कि जानबूझकर गणना की गई कोशिकाएं अब गणना नहीं करेंगी।
क्षति अक्सर स्थायी क्यों होती है - सहेजने पर सटीकता खो जाती है और एक अलग प्रारूप में पुन: क्रमांकित तिथियों को आउटपुट से उलटा नहीं किया जा सकता है
मान लीजिए कि 20-अंकीय ग्राहक संदर्भ को संख्यात्मक व्याख्या के बाद पूर्णांकित किया जाता है और सहेजा जाता है। नए CSV से लुप्त मूल अंकों का अनुमान नहीं लगाया जा सकता। किसी दिनांक को आंतरिक दिनांक में परिवर्तित करने और किसी अन्य स्थान पर निर्यात करने पर वह खो सकता है, चाहे स्रोत का मतलब 3 अप्रैल या मार्च 4 हो। यही कारण है कि "मैं इसे बाद में साफ करूंगा" एक सुरक्षित पहला कदम नहीं है। स्वचालित टाइपिंग वाले किसी भी सॉफ़्टवेयर को उन्हें बदलने का मौका मिलने से पहले कच्चे बाइट्स को सुरक्षित रखें।
इसके बजाय कच्चे पाठ पर काम करना - एक प्रतिलिपि रखना जिसे किसी स्प्रेडशीट ने नहीं छुआ है, और किसी भी आयात से पहले इसे पाठ के रूप में साफ करना
एक पार्सर के साथ पाठ निर्यात की एक प्रति पर काम करें जो कोशिकाओं को स्ट्रिंग के रूप में मानता है। ToolAcre का CSV क्लीनर ब्राउज़र में सीमांकक और उद्धृत फ़ील्ड को पार्स करता है और अतिरिक्त सेल को चुपचाप गिराए बिना पंक्ति चेतावनियां दिखाता है। जांचें कि क्या हेडर में अभी भी इसके मूल अग्रणी बाइट्स शामिल हैं और क्या पहचानकर्ताओं में सटीक स्रोत वर्ण शामिल हैं। रिक्त स्थान या डुप्लीकेट साफ़ करना किसी फ़ील्ड के अर्थ की व्याख्या करने से अलग है; एक पोस्टकोड एक स्ट्रिंग ही रहना चाहिए, भले ही प्रत्येक अक्षर एक अंक हो।
कार्यान्वित उदाहरण - SKU और पोस्टकोड के साथ एक उत्पाद निर्यात, यह दर्शाता है कि एक स्प्रेडशीट राउंड-ट्रिप क्या बदलता है और एक टेक्स्ट-स्तरीय क्लीन क्या संरक्षित करता है
हेडर sku;पोस्टकोड;विवरण और पंक्तियों 00042;01234;"लाल, छोटा" और 00043;00105;"नीला, बड़ा" के साथ एक उदाहरणात्मक निर्यात का उपयोग करें। एक सहज अल्पविराम आयात अर्धविराम फ़ील्ड को ध्वस्त कर देता है, जबकि स्वचालित संख्यात्मक टाइपिंग 00042 और 01234 को 42 और 1234 में बदल सकती है। CSV क्लीनर का अर्धविराम पार्स प्रत्येक विवरण के अंदर उद्धृत अल्पविराम सहित तीन पाठ्य कॉलम उत्पन्न करता है; साफ़ की गई प्रतिलिपि को निर्यात करने के लिए आपको अभी भी गंतव्य स्प्रेडशीट में टेक्स्ट के रूप में कॉलम आयात करने की आवश्यकता होती है। खरीदारी के लिए भेजने से पहले कच्ची और गोल-गोल फाइलों की तुलना करें।
इसमें क्या शामिल नहीं है - पिछले सेव द्वारा पहले ही नष्ट किए गए मानों को पुनर्स्थापित करना, या स्प्रेडशीट के आयात विज़ार्ड को कॉन्फ़िगर करना
यह पोस्ट सहेजी गई स्प्रेडशीट फ़ाइल में पहले से ही नष्ट हो चुके पहचानकर्ता अंकों या अग्रणी शून्य को पुनर्प्राप्त नहीं कर सकता है। न ही टेक्स्ट-स्तरीय क्लीनर एक्सेल के आयात विज़ार्ड, किसी सहकर्मी की लोकेल सेटिंग्स या डेटाबेस स्कीमा को कॉन्फ़िगर करता है। एक बार कच्ची फ़ाइल सुरक्षित हो जाने पर, कोड और ID कॉलम के लिए स्प्रेडशीट विक्रेता के टेक्स्ट-आयात निर्देशों का पालन करें। सटीक प्राप्तकर्ता वर्कफ़्लो के माध्यम से एक छोटे नमूने का परीक्षण करें; "स्तंभों में खुलता है" यह साबित नहीं होता है कि "प्रत्येक स्ट्रिंग संरक्षित है।"
स्प्रेडशीट को देखने से पहले फ़ाइल को ठीक करें - कैसे ToolAcre CSV क्लीनर आपको स्प्रेडशीट में निर्यात खोलने से पहले डिलीमीटर, एन्कोडिंग और उद्धरण की मरम्मत करने देता है
फ़ाइल को स्प्रेडशीट में देखने से पहले उसे ठीक करें, फिर एक आयात मोड चुनें जो पहचानकर्ताओं को पाठ्य रखता है। CSV क्लीनर स्थानीय स्तर पर असंशोधित निर्यात के डिलीमीटर, एन्कोडिंग और उद्धरण की मरम्मत कर सकता है। यह किसी स्प्रेडशीट को आपकी ओर से फ़ील्ड प्रकारों का अनुमान लगाना बंद नहीं करता है, इसलिए अछूता मूल और आयात के बाद की तुलना सबसे महत्वपूर्ण सुरक्षा उपाय बने हुए हैं।