এক্সেল ওয়ার্কশিট থেকে স্কয়ার সন্নিবেশ লিপি তৈরি করুন


107

আমার কাছে একটি বিশাল এক্সেল ওয়ার্কশিট রয়েছে যা আমি আমার ডাটাবেসে যুক্ত করতে চাই।

আমি কি এই এক্সেল ওয়ার্কশিট থেকে একটি এসকিউএল সন্নিবেশ স্ক্রিপ্ট তৈরি করতে পারি?


2
আমি উভয় জন্য SQL স্ক্রিপ্ট পেতে একটি সহজ সরঞ্জাম তৈরি insert& update এখানে ডান
Pathros

আপনি এসকিউএল কমান্ড উত্পন্ন করতে আমার ভিবিএ ম্যাক্রোও ব্যবহার করতে পারেন। এখানে আরও: স্ট্যাকওভারফ্লো.com
প্রশ্নগুলি

উত্তর:


201

আমি মনে করি উল্লিখিত একটি পদ্ধতি ব্যবহার করে আমদানি করা আদর্শ, যদি এটি সত্যই বড় ফাইল হয় তবে আপনি সন্নিবেশ বিবৃতি তৈরি করতে এক্সেল ব্যবহার করতে পারেন:

="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')"

এমএস এসকিউএল এ আপনি ব্যবহার করতে পারেন:

SET NOCOUNT ON

পূর্বে সমস্ত '1 টি সারি প্রভাবিত' মন্তব্যগুলি দেখানো হচ্ছে। এবং যদি আপনি প্রচুর সারি করে থাকেন এবং এটির ত্রুটি ঘটে যায় তবে প্রতি একবারে বিবৃতিগুলির মধ্যে একটি জিও রাখুন


3
আমি ব্যবহার করছিলাম =CONCATENATE()কিন্তু &সাইনটি ব্যবহার করে আরও ভাল পাঠযোগ্যতার দিকে নিয়ে যায়!
মাস্তাজি

1
@ মাস্তাজী রাজি! কিছুক্ষণ আগে &আমি যখন প্যারামিটার সীমাতে umpুকে পড়েছিলাম তখন আমি স্যুইচ করেছি CONCATENATE(), সীমাটি 255 পরামিতি হওয়ায় এখন এটি কোনও সাধারণ সমস্যা নয়, তবে আমি কখনই ফিরে আসার কথা ভাবি না।
হার্ট সিও

1
কনসেটেট () হ'ল উপায়। আপনি কী প্রবেশ করেছেন তা দেখতে সূত্র বারের কেবল fx আইকনটি ক্লিক করুন। এটি কেবল ব্যবহার এবং সাইন ব্যবহারের চেয়ে অনেক বেশি পরিষ্কার। অবশ্যই ব্যবহার ও সাইন ব্যবহার করা দুর্দান্ত তবে আপনি যখন ডাবল উক্তি বা একক উদ্ধৃতি পাবেন তখন আপনাকে যা অনুপস্থিত তা চিরকালের জন্য গণনা করে।
ian0411

1
কোষে কোট রাখার সময় কাজ করে না। সংশোধিত সংস্করণের জন্য আমার উত্তরটি পরীক্ষা করুন।
সাইমন বার্স

2
@ প্রেশানপ্রদীপা আপনি একই বাক্য গঠন ব্যবহার করতে পারেন, এসকিউএল সার্ভারের যদি কোনও বৈধ পূর্ণসংখ্যার অবধি পূর্ণসংখ্যার কোট থাকে তবে সেটির যত্ন নেই।
হার্ট সিও

29

একটি সহজ সরঞ্জাম যা অনেক সময় সাশ্রয় করে

http://tools.perceptus.ca/text-wiz.php?ops=7

আপনাকে কেবল সারণির নাম, ক্ষেত্রের নাম এবং ডেটা - ট্যাব পৃথক করে গোতে আঘাত করতে হবে!


7
ওয়েবে আপনার সংবেদনশীল ডেটা পোস্ট করবেন না। আপনি ওয়েব অ্যাপ্লিকেশনটিতে যে ডেটা জমা দেন তার কী হবে তা জানার কোনও উপায় নেই। এর মধ্যে কয়েকটি সরঞ্জাম আপনার ডেটা সঞ্চয় করে এবং এটি সর্বজনীনভাবে উপলভ্য করে
তোলে

28

আপনি ম্যানেজমেন্ট স্টুডিও ইন্টারফেসের মাধ্যমে একটি উপযুক্ত টেবিল তৈরি করতে পারেন এবং নীচে প্রদর্শিত টেবিলের মতো ডেটা .োকাতে পারেন। ডেটার পরিমাণের উপর নির্ভর করে এটি কিছু সময় নিতে পারে তবে এটি খুব সহজ।

এখানে চিত্র বর্ণনা লিখুন

এখানে চিত্র বর্ণনা লিখুন


কুশলী। আমি দেখতে পাচ্ছি যে একটি পরিচয় কলামের সাথে, অনুলিপি বাফারটির কলামটি থাকা দরকার, যদিও সারিগুলি সন্নিবেশ করায় মানগুলি স্বয়ংক্রিয়ভাবে জড়িত হওয়ায় এতে ডেটা উপেক্ষা করা হবে।
19:38

আপনি নিজের পরিচয় কলামটি কলামের তালিকায় সর্বশেষে তৈরি করতে পারেন এবং তারপরে অতিরিক্ত কলামও লাগবে না।
আন্দ্রে মরোজভ

1
আপনি যদি এক্সেল শীটে আইডেন্টিটি মানগুলি নির্দিষ্ট না করেন; আপনি IDENTITY কলামটি সরিয়ে সম্পাদনা শীর্ষ 200 সারি বর্গ স্ক্রিপ্ট পরিবর্তন এবং পুনরায় চালাতে পারেন। সুতরাং যখন আপনি পরিচয় ছাড়াই মানগুলি অনুলিপি করুন এবং পেস্ট করবেন; এই পদ্ধতি কাজ করবে।
aozan88

এটি সমস্যার মধ্যে চলে এমন অন্য কারও জন্য এক্সেলের তারিখ এবং সময় ক্ষেত্রগুলির জন্য ভাঙ্গা। ডেটটাইম ডেটা কোনও কারণে এসকিউএল পক্ষের "বাইনারি" ডেটাতে রূপান্তরিত হয়।
কেভিন ভাস্কো

1
@ কনডিয়াসলুজভারে আমি আপনাকে নিজের উত্তর পোস্ট করার পরামর্শ দিচ্ছি। এই উত্তরটি সম্পাদনার ক্ষেত্রে আপনার পরিবর্তনগুলি সম্ভবত সম্প্রদায়ের মডারেটররা প্রত্যাখ্যান করবে।
আন্দ্রে মোরোজভ

16

আপনি নিম্নলিখিত এক্সেল স্টেটমেন্ট ব্যবহার করতে পারেন:

="INSERT INTO table_name(`"&$A$1&"`,`"&$B$1&"`,`"&$C$1&"`, `"&$D$1&"`) VALUES('"&SUBSTITUTE(A2, "'", "\'")&"','"&SUBSTITUTE(B2, "'", "\'")&"','"&SUBSTITUTE(C2, "'", "\'")&"', "&D2&");"

এটি হার্ট সিওর উত্তরের চেয়ে ভাল কারণ এটি কলামের নামগুলি অ্যাকাউন্টে নেয় এবং কলামে উদ্ধৃতিগুলির কারণে সংকলন ত্রুটিগুলি থেকে মুক্তি পায়। চূড়ান্ত কলামটি কোনও উদ্ধৃতি ছাড়াই একটি সংখ্যার মান কলামের একটি উদাহরণ।


1
ভাল কাজ. গুগলশিটে আমাকে কলামের নাম উল্লেখগুলি ঘিরে grave (কবর / ব্যাকটিক) সরিয়ে ফেলতে হয়েছিল।
সিক্রেটওয়েপ

5

ডাটাবেসের উপর নির্ভর করে আপনি সিএসভিতে রফতানি করতে পারেন এবং তারপরে একটি আমদানি পদ্ধতি ব্যবহার করতে পারেন।

মাইএসকিউএল - http://dev.mysql.com/doc/refman/5.1/en/load-data.html

পোস্টগ্রাসএসকিউএল - http://www.postgresql.org/docs/8.2/static/sql-copy.html


3
এমএস এসকিউএল, আপনি এক্সেল ফাইল আমদানি করতে এসএসএমএসের আমদানি উইজার্ডটি ব্যবহার করতে পারেন।
হার্ট সিও

1
@ হার্টকোতে বিশদ যুক্ত করতে - এসএসএমএস আমদানি উইজার্ডে নেভিগেট করতে ডাটাবেসে ডান ক্লিক করুন, টাস্কগুলি ধরে রাখুন, প্রসঙ্গ মেনুর নীচের অংশে "ডেটা ইমপোর্ট করুন ..." ক্লিক করুন। উইজার্ডের ধাপগুলি অনুসরণ করুন।
qxotk

2

আপনি এমন কিছু লিখতে ভিবি ব্যবহার করতে পারেন যা আপনার ডেটার চারপাশে যথাযথ এসকিএল স্টেটমেন্ট যুক্ত করে সারি করে কোনও ফাইল সারি আউটপুট দেয়। আমি এটি আগেও করেছি।


1

এখানে আরও একটি সরঞ্জাম যা খুব ভালভাবে কাজ করে ...

http://www.convertcsv.com/csv-to-sql.htm

এটি ট্যাব দ্বারা পৃথক করা মান নিতে পারে এবং একটি INSERT স্ক্রিপ্ট তৈরি করতে পারে। কেবল কপি এবং পেস্ট করুন এবং দ্বিতীয় ধাপের নীচে বিকল্পগুলিতে "প্রথম সারিতে কলামের নামগুলি" বাক্সটি চেক করুন

তারপরে নীচে এবং 3 ধাপের নীচে স্ক্রোল করুন , "স্কিমা T টেবিল বা নাম দেখুন:" বাক্সে আপনার টেবিলের নামটি প্রবেশ করুন "

মুছে ফেলার দিকে মনোযোগ দিন এবং পাশাপাশি সারণী চেক বাক্সগুলি তৈরি করুন এবং জেনারেটেড স্ক্রিপ্টটি চালানোর আগে আপনি এটি পরীক্ষা করেছেন কিনা তা নিশ্চিত করুন।

এটি আমি খুঁজে পেয়েছি দ্রুত এবং সবচেয়ে নির্ভরযোগ্য উপায়।


1

পাওয়ারশেল গ্যালারীটিতে আমদানি এক্সেলConvertFrom-ExcelToSQLInsert থেকে ব্যবহার করুন

NAME
    ConvertFrom-ExcelToSQLInsert
SYNTAX
    ConvertFrom-ExcelToSQLInsert [-TableName] <Object> [-Path] <Object> 
      [[-WorkSheetname] <Object>] [[-HeaderRow] <int>] 
      [[-Header] <string[]>] [-NoHeader] [-DataOnly]  [<CommonParameters>]
PARAMETERS
    -DataOnly
    -Header <string[]>
    -HeaderRow <int>
    -NoHeader
    -Path <Object>
    -TableName <Object>
    -WorkSheetname <Object>
    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer, PipelineVariable, and OutVariable. For more information, see
        about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
ALIASES
    None
REMARKS
    None


0

এই ক্যোয়ারীটি আমি ডাটাবেসে এক্সেল ফাইল ডেটা forোকানোর জন্য উত্পন্ন করেছি এবং এই আইডিতে এবং মূল্যটি হ'ল সংখ্যাসূচক মান এবং তারিখের ক্ষেত্র। এই ক্যোয়ারীটি আমার প্রয়োজনীয় সমস্ত ধরণের সংক্ষিপ্তসার জানিয়েছিল এটি আপনার পক্ষেও কার্যকর হতে পারে

="insert into  product (product_id,name,date,price) values("&A1&",'" &B1& "','" &C1& "'," &D1& ");"


    Id    Name           Date           price 
    7   Product 7   2017-01-05 15:28:37 200
    8   Product 8   2017-01-05 15:28:37 40
    9   Product 9   2017-01-05 15:32:31 500
    10  Product 10  2017-01-05 15:32:31 30
    11  Product 11  2017-01-05 15:32:31 99
    12  Product 12  2017-01-05 15:32:31 25

0

এক্সেল শীট ব্যবহার করে সন্নিবেশ স্ক্রিপ্টগুলি তৈরি করতে আপনি নীচের সি # পদ্ধতিটি ব্যবহার করতে পারেন কেবল পদ্ধতিটি কার্যকর করার আগে নুগেট প্যাকেজ ম্যানেজারের থেকে OfficeOpenXML প্যাকেজ আমদানি করা দরকার।

public string GenerateSQLInsertScripts() {

        var outputQuery = new StringBuilder();
        var tableName = "Your Table Name";
        if (file != null)
        {
            var filePath = @"D:\FileName.xsls";

            using (OfficeOpenXml.ExcelPackage xlPackage = new OfficeOpenXml.ExcelPackage(new FileInfo(filePath)))
            {
                var myWorksheet = xlPackage.Workbook.Worksheets.First(); //select the first sheet here
                var totalRows = myWorksheet.Dimension.End.Row;
                var totalColumns = myWorksheet.Dimension.End.Column;

                var columns = new StringBuilder(); //this is your columns

                var columnRows = myWorksheet.Cells[1, 1, 1, totalColumns].Select(c => c.Value == null ? string.Empty : c.Value.ToString());

                columns.Append("INSERT INTO["+ tableName +"] (");
                foreach (var colrow in columnRows)
                {
                    columns.Append("[");
                    columns.Append(colrow);
                    columns.Append("]");
                    columns.Append(",");
                }
                columns.Length--;
                columns.Append(") VALUES (");
                for (int rowNum = 2; rowNum <= totalRows; rowNum++) //selet starting row here
                {
                    var dataRows = myWorksheet.Cells[rowNum, 1, rowNum, totalColumns].Select(c => c.Value == null ? string.Empty : c.Value.ToString());

                    var finalQuery = new StringBuilder(); 
                    finalQuery.Append(columns);

                    foreach (var dataRow in dataRows)
                    {
                        finalQuery.Append("'");
                        finalQuery.Append(dataRow);
                        finalQuery.Append("'");
                        finalQuery.Append(",");
                    }
                    finalQuery.Length--;

                    finalQuery.Append(");");

                    outputQuery.Append(finalQuery);

                  }

            }
        }

return outputQuery.ToString();}

0

আমাকে প্রায়শই এসকিউএল স্ক্রিপ্টগুলি তৈরি করতে হত এবং তাদের উত্স নিয়ন্ত্রণে যুক্ত করে ডিবিএতে পাঠাতে হয়েছিল। আমি উইন্ডোজ স্টোর https://www.microsoft.com/store/apps/9NH0W51XXQRM থেকে এই এক্সেলআইএনএসকিউএল অ্যাপ্লিকেশনটি ব্যবহার করেছি এটি "ক্রিয়েট টেবিল" এবং ইনসার্টস সহ সম্পূর্ণ স্ক্রিপ্ট তৈরি করে।


0

আমার কাছে এসকিউএল সন্নিবেশকারী ব্যাটলি উত্সাহিত করার একটি নির্ভরযোগ্য উপায় রয়েছে এবং আপনি প্রক্রিয়াকরণে আংশিক পরামিতিগুলি পরিবর্তন করতে পারেন me এটি আমার কাজের ক্ষেত্রে আমাকে অনেক সহায়তা করে, উদাহরণস্বরূপ, বেমানান কাঠামো এবং ক্ষেত্রগুলি গণনা সহ ডাটাবেসে একশত ডেটা অনুলিপি করুন। আমি ব্যবহার করি এমন শক্তিশালী সরঞ্জাম ইন্টেলিজজে ডেটাগ্রিপ । ডিজি ব্যাট করে ডাব্লুপিএস অফিস বা এমএস এক্সেল থেকে কলাম বা লাইনে ডেটা পেতে পারে। অনুলিপি করার পরে, ডিজি এসকিউএল সন্নিবেশ হিসাবে ডেটা রফতানি করতে পারে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.