MySQL डेटाबेस में एक्सेल फ़ाइल कैसे आयात करें


87

क्या कोई समझा सकता है कि किसी Microsoft Excel फ़ाइल को MySQL डेटाबेस में कैसे आयात किया जाए?

उदाहरण के लिए, मेरी एक्सेल तालिका इस तरह दिखती है:

Country   |   Amount   |   Qty
----------------------------------
America   |   93       |   0.60

Greece    |   9377     |   0.80

Australia |   9375     |   0.80

[आप इस धागे को देख सकते हैं] [१] MySQL मंचों पर। यह बताता है कि आप जो चाहते हैं वह ठीक से कैसे करें। [1]: forums.mysql.com/read.php?32,216343,216344#msg-216344
Kredns

1
यह मुफ्त उपयोगिता mysql टेबल्स में एक्सेल स्प्रेडशीट का आयात त्वरित और आसान panofish.net/… बनाती है
panofish

एक नए और अलग विचार के लिए +1। प्रसंस्करण बेहद धीमा है, यह पहले प्रत्येक पंक्ति को फ़ाइल में पढ़ता है और फिर कुछ भी अपलोड करता है। 5.2K पंक्तियों को आयात करने में लगभग 15 मिनट का समय लगा
Fr0zenFyr

कुछ स्प्रेडशीट के लिए, यह कॉलम और पंक्तियों की संख्या के कारण धीमा हो सकता है। लेकिन, मैं microsofts कोम-ऑब्जेक्ट लाइब्रेरी को दोष देता हूं जो कि स्प्रेडशीट को पढ़ने के लिए उपयोग किया जाता है। मेरा प्रोग्राम स्प्रेडशीट को उतनी ही तेजी से पढ़ता है जितनी लाइब्रेरी अनुमति देगी। Mysql आवेषण बहुत तेज हैं। यदि आप आयात करने से पहले अनावश्यक स्तंभों को समाप्त कर सकते हैं ... जो मदद कर सकता है।
पैनोफिश २ pan

5173 पंक्तियों पर मेरे 14 कॉलम थे। मैंने पहले से ही सभी खाली कॉलम / पंक्तियों को चुना था और अनावश्यक प्रसंस्करण से बचने के लिए उन्हें हटा दिया था। Sytem जो मैं उपयोग कर रहा था उसमें 2.5G RAM और core2duo प्रोसेसर था, जिसमें कई प्रक्रियाएं नहीं चल रही थीं, प्रदर्शन टैब ने सभी में 65% उपयोग दिखाया और बहुत से RAM अभी भी अप्रयुक्त हैं। इसलिए, मुझे लगता है कि मैं हार्डवेयर को दोष नहीं दूंगा, लेकिन जैसा कि आपने कहा, एमएस कॉम ऑब्जेक्ट चूसते हैं .. मुझे नहीं पता कि एमएस कब बकवास का निर्माण करना बंद कर देगा जो नौसिखियों के लिए जीवन रक्षक की तरह दिखते हैं। मैं एमएस उत्पादों के लिए अतिरिक्त बकवास करने से बीमार हूं।
Fr0zenFyr

जवाबों:


46
  1. इसे कुछ टेक्स्ट फॉर्मेट में एक्सपोर्ट करें। सबसे आसान शायद एक टैब-सीमांकित संस्करण होगा, लेकिन सीएसवी भी काम कर सकता है।

  2. लोड डेटा क्षमता का उपयोग करें। Http://dev.mysql.com/doc/refman/5.1/en/load-data.html देखें

  3. पृष्ठ को आधा नीचे देखें, क्योंकि यह टैब से अलग किए गए डेटा के लिए एक अच्छा उदाहरण देगा:

    FIELDS को '' t 'द्वारा' 'ESCAPED' 'द्वारा निर्दिष्ट'

  4. अपना डेटा जांचें। कभी-कभी उद्धृत या भागने से समस्याएं होती हैं, और आपको अपने स्रोत को समायोजित करने की आवश्यकता होती है, कमांड को आयात करें - या SQL के माध्यम से पोस्ट-प्रोसेस करना आसान हो सकता है।


2
CSV में निर्यात करते समय, [कम से कम] एक्सेल 2013 सक्रिय रूप से परिभाषित किया गया है, जैसे कि VBA-escaped doublequotes का उपयोग करके, 0 मानों के लिए लोकेल-डिपेंडेंट (OS क्षेत्रीय सेटिंग्स के आधार पर) दशमलव विभाजक (जैसे ',') का उपयोग करते हुए परिभाषित किया गया है। अन्य सभी मूल्यों के लिए सेल गुणों के विभाजक में। CSV से दूर रहने के लिए सर्वश्रेष्ठ।
afk5min

1
ध्यान दें कि इस प्रक्रिया के लिए आवश्यक है कि आप पहले उपयुक्त फ़ील्ड के साथ तालिका बनाएं।
लार्श

यह एकमात्र समस्या नहीं है। मुझे यकीन नहीं है कि अगर यह प्रक्रिया एक्सल में एक सेल के अंदर कैरिज रिटर्न के साथ सही तरीके से निपटती है। यहां तक ​​कि सीएसवी से एक्सेल तक का आयात भी इसमें विफल है
राउल लूना

1
@ afk5min "विष डेटा" से आपका क्या तात्पर्य है ??? उन सभी टैग और मार्कअप उपयोगकर्ताओं के लिए बहुत उपयोगी हैं जो स्पष्ट रूप से एक और एमएस उत्पाद में आयात करने जा रहे हैं ...
माइंडविन

1
* आपका मतलब था "सबसे कठिन रास्ता" सबसे आसान नहीं
स्पष्ट रूप से

102

एक सरल ऑनलाइन टूल है जो इसे sqlizer.io कह सकता है

Sqlizer.com से स्क्रीनशॉट

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

(अस्वीकरण: मैं SQLizer चलाने में मदद करता हूं)


22
यह जानने के लिए अच्छा है कि यह उपकरण मौजूद है, लेकिन निश्चित रूप से इस बारे में सोचें कि क्या आपको इसका उपयोग करना चाहिए या नहीं। यदि आपकी स्प्रेडशीट में संवेदनशील डेटा (जैसे उपयोगकर्ता ईमेल, पासवर्ड, cc जानकारी, चिकित्सा जानकारी आदि) हैं, तो यह एक अच्छा विचार नहीं हो सकता है। यह साइट आपके डेटा को संग्रहीत नहीं कर सकती है और यह सुरक्षित हो सकती है, लेकिन आपके लिए यह सुनिश्चित करने का कोई तरीका नहीं है।
क्रिस स्मिट्ज़

1
@DivyeshJesadiya यह 5000 पंक्तियों तक के लिए मुफ्त है। उसके बाद आपको उपयोग के एक महीने के लिए $ 10 का भुगतान करना होगा।
d4nt

@ डॉक्सी यह मुझे ठीक लगता है, आपको इससे किस तरह की समस्या थी?
d4nt

@ChrisSchmitz हम सुरक्षा के साथ सुपर सतर्क हैं और हाल ही में के बारे में कैसे एक ब्लॉग पोस्ट में लिखा था हम SQLizer संचालित blog.sqlizer.io/posts/privacy-at-sqlizer
a_good_swan

यह काम करता है, एक्सेल प्रारूप पर ध्यान दें, xlt को स्वीकार नहीं किया जाता है इस बीच xls स्वीकार किया जाता है।
इमानुएल पिरोवानो

40

नीचे MySQL डेटाबेस में स्प्रेडशीट डेटा आयात करने का एक और तरीका है जो किसी भी अतिरिक्त सॉफ़्टवेयर पर भरोसा नहीं करता है। मान लें कि आप अपने एक्सेल टेबल को salesMySQL डेटाबेस की तालिका में आयात करना चाहते हैं जिसका नाम है mydatabase

  1. संबंधित कक्षों का चयन करें:

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

  2. श्री डेटा कन्वर्टर में पेस्ट करें और MySQL के रूप में आउटपुट चुनें:

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

  3. जनरेट किए गए आउटपुट में अपनी आवश्यकताओं को पूरा करने के लिए तालिका का नाम और स्तंभ परिभाषाएं बदलें:

CREATE TABLE sales (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  Country VARCHAR(255),
  Amount INT,
  Qty FLOAT
);
INSERT INTO sales
  (Country,Amount,Qty)
VALUES
  ('America',93,0.60),
  ('Greece',9377,0.80),
  ('Australia',9375,0.80);
  1. यदि आप MySQL कार्यक्षेत्र का उपयोग कर रहे हैं या पहले mysqlसे कमांड लाइन से लॉग इन हैं , तो आप सीधे चरण 3 से उत्पन्न SQL स्टेटमेंट को निष्पादित कर सकते हैं। अन्यथा, कोड को टेक्स्ट फ़ाइल (जैसे import.sql) में पेस्ट करें और इस कमांड को यूनिक्स शेल से निष्पादित करें:

    mysql mydatabase < import.sql

    SQL फ़ाइल से आयात करने के अन्य तरीके इस स्टैक ओवरफ़्लो उत्तर में मिल सकते हैं ।


1
यह सबसे आसान तरीका था। धन्यवाद! बस एसक्यूएल में अतिरिक्त प्राथमिक कुंजी 'आईडी' को हटाने के लिए याद रखें, और अपनी पसंद के एक ऑटो वेतन वृद्धि को रखें।
Fandango68

29

वास्तव में MySQL डेटाबेस में एक्सेल फाइल को आयात करने के कई तरीके हैं जिनकी जटिलता और सफलता की अलग-अलग डिग्री है।

  1. Excel2MySQL । MySQL में Excel डेटा आयात करने का सबसे आसान और तेज़ तरीका, नीचे हाथ। यह एक्सेल के सभी वेरिएशन को सपोर्ट करता है और इसके लिए ऑफिस इन्स्टॉल की जरूरत नहीं है।

    Excel2MySQL का स्क्रीनशॉट

  2. लोड डाटा इनइमर : यह लोकप्रिय विकल्प शायद सबसे तकनीकी है और इसके लिए MySQL कमांड निष्पादन की कुछ समझ की आवश्यकता होती है। लोड करने से पहले आपको मैन्युअल रूप से अपनी तालिका बनानी होगी और उचित रूप से VARCHAR फ़ील्ड प्रकारों का उपयोग करना होगा। इसलिए, आपके फ़ील्ड डेटा प्रकार अनुकूलित नहीं हैं। लोड डाटा इनइमर में बड़ी फाइलें आयात करने में परेशानी होती है जो 'max_allowed_packet' आकार से अधिक होती है। विशेष पात्रों और विदेशी यूनिकोड वर्णों को आयात करने वाली समस्याओं से बचने के लिए विशेष ध्यान देने की आवश्यकता है। यहाँ एक हालिया उदाहरण है जिसका उपयोग मैंने एक csv फ़ाइल का परीक्षण करने के लिए किया था जिसका नाम test.csv है।

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

  3. phpMyAdmin : पहले अपने डेटाबेस का चयन करें, फिर आयात टैब चुनें। phpMyAdmin स्वचालित रूप से आपकी तालिका बनाएगा और आपके VARCHAR फ़ील्ड को आकार देगा, लेकिन यह फ़ील्ड प्रकारों का अनुकूलन नहीं करेगा। phpMyAdmin को बड़ी फाइलें आयात करने में परेशानी होती है जो 'max_allowed_packet' आकार से अधिक होती है।

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

  4. एक्सेल के लिए MySQL : यह ओरेकल से एक मुफ्त एक्सेल ऐड-इन है। यह विकल्प थोड़ा थकाऊ है क्योंकि यह एक विज़ार्ड का उपयोग करता है और आयात धीमी और बड़ी फ़ाइलों के साथ छोटी है, लेकिन VARCHAR डेटा वाली छोटी फ़ाइलों के लिए यह एक अच्छा विकल्प हो सकता है। फ़ील्ड अनुकूलित नहीं हैं।

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


हाय @ अपोफिश, मेरे पास एक एक्सेल है जो दैनिक रूप से अपडेट हो जाता है। मैं केवल अद्यतन किए गए डेटा को पूरी तालिका के बजाय mysql डेटाबेस तालिका में रखना चाहता हूं। (यानी) प्रति दिन तालिका में एक पंक्ति डालें। यह कैसे किया जा सकता है?
अरुण राजा

ये समाधान सभी संपूर्ण स्प्रेडशीट को लोड करने और आपकी MySQL तालिका को बदलने या तालिका में जोड़ने पर केंद्रित हैं। क्या बदलाव नए रिकॉर्ड जोड़ रहे हैं या मौजूदा रिकॉर्ड बदल रहे हैं?
पैनोफिश

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

2
Excel2MySQL टूल में केवल डेटाबेस स्क्रिप्ट बनाने की संभावना होनी चाहिए :(
joseantgv

PHPMyAdmin सबसे आसान और तेज था।
अमीर हाजी

2

निश्चित नहीं है कि आपके पास यह सब सेटअप है, लेकिन मेरे लिए मैं PHP और MYSQL का उपयोग कर रहा हूं। तो मैं एक PHP वर्ग PHPExcel का उपयोग करें। यह लगभग किसी भी प्रारूप में एक फ़ाइल लेता है, xls, xlsx, cv, ... और फिर आपको पढ़ने और / या सम्मिलित करने देता है।

तो मैं क्या कर रहा हूँ हवा को एक phpexcel ऑब्जेक्ट में लोड कर रहा है और फिर सभी पंक्तियों के माध्यम से लूप। मैं जो चाहता हूं उसके आधार पर, मैं एक्सेल फाइल में डेटा डालने के लिए एक साधारण एसक्यूएल इन्सर्ट कमांड लिखता हूं।

सामने के छोर पर यह थोड़ा काम है, लेकिन इसके मौजूदा कोड उदाहरणों में से कुछ को ट्विक करने की बात है। लेकिन जब आपने इसे आयात में परिवर्तन करने के लिए डायल किया है तो यह सरल और तेज है।


1

सबसे अच्छा और आसान तरीका "MySQL for Excel" ऐप का उपयोग करना है जो ओरेकल से एक मुफ्त ऐप है। इस ऐप ने mysql को डेटा निर्यात और आयात करने के लिए एक्सेल में एक प्लगइन जोड़ा। आप यहाँ से डाउनलोड कर सकते हैं


1

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

अब मैं अपने MySql तालिका को लिंक की गई तालिका के रूप में खोलने के लिए Microsoft Access 2010 का उपयोग करता हूं । वहाँ मैं एक्सेल से एक्सेस तक की कोशिकाओं को कॉपी और पेस्ट कर सकता हूँ।

ऐसा करने के लिए, पहले MySql ODBC ड्राइवर स्थापित करें और ODBC कनेक्शन बनाएं । फिर "बाहरी डेटा" टैब में, "ODBC डेटाबेस" संवाद खोलें और ODBC कनेक्शन का उपयोग करके किसी भी तालिका से लिंक करें।

MySql Workbench का उपयोग करके , आप अपने Excel डेटा को MySql Workbench के परिणाम ग्रिड में कॉपी और पेस्ट भी कर सकते हैं। मैंने इस उत्तर में विस्तृत निर्देश दिए ।


0

इस टिप्पणी के लिए सही एन्कोडिंग (UTF-8) खोज के साथ MySQL में Excel 2007 को आयात करने के लिए एक कदम से कदम उदाहरण के लिए :

"13 अक्टूबर 2010 को 12:50 बजे माइक लैयर्ड ने पोस्ट किया"

अगले URL में:

http://dev.mysql.com/doc/refman/5.1/en/load-data.html


0

आप एक्सेल को MySQL में आयात करने के लिए बहुत सहज GIU, DocChow का उपयोग कर सकते हैं , और यह अधिकांश सामान्य प्लेटफार्मों (लिनक्स सहित) पर मुफ़्त है।

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


0

चरण 1 अपनी सीएसवी फ़ाइल बनाएँ

चरण 2 अपने mysql सर्वर में लॉग इन करें

     mysql -uroot -pyourpassword 

चरण 3 अपनी सीएसवी फ़ाइल लोड करें

     load data local infile '//home/my-sys/my-excel.csv' into table my_tables fields terminated by ',' enclosed by '"' (Country, Amount,Qty);

0

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

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