Bagaimana membaca data dari excel menggunakan ole db?

Apakah Anda bekerja di Windows atau di Web atau di aplikasi Console, pada satu tahap kita perlu memproses data dan file excel banyak digunakan untuk itu, jadi di artikel sebelumnya, kami telah menjelaskan tentang membuat excel di C# tanpa interop tetapi di artikel ini . xls atau. xlsx) di C# baris demi baris di aplikasi Konsol menggunakan OLEDB atau EPPlus atau Interop (semua 3 metode), Anda dapat menggunakan kode yang sama kode C# untuk mengisi ASP. Tabel aplikasi NET GridView atau MVC

Jadi, mari kita mulai dengan itu

Langkah 1. Buat aplikasi Konsol baru di Visual Studio Anda, dengan menavigasi ke File->New->Project-> Pilih "Windows Classic dekstop" dari panel kiri & "Console-App" dari panel kanan -> Berikan nama untuk aplikasi Anda

Bagaimana membaca data dari excel menggunakan ole db?

Langkah 2. Sekarang kita memiliki aplikasi Console dan kita perlu menambahkan kode C# menggunakan OLEDB untuk membaca file excel, untuk itu kita memerlukan string koneksi dengan URL sumber file excel

Dalam contoh yang diberikan seperti yang saya gunakan. File excel XLS, ini string koneksi saya

string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Sample1.xls; Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'";

Untuk Format Excel 97-2003 kita bisa menggunakan “Microsoft Jet OLEDB Driver 4. 0”, sedangkan untuk Connection String for Excel 2007 Format (. XLSX), kita bisa menggunakan “Microsoft Ace OLEDB Driver 12. 0” dan string koneksinya akan seperti di bawah ini

 string connString = "Provider= Microsoft.ACE.OLEDB.12.0;" + "Data Source=Sample1.xlsx" + ";Extended Properties='Excel 8.0;HDR=Yes'";
_

Di string Koneksi di atas, Anda mungkin melihat properti yang diperluas HDR=Ya & HDR=Tidak

Gunakan HDR=YES jika baris excel pertama berisi header, alternatifnya, gunakan HDR=NO jika baris pertama excel Anda bukan header dan itu adalah data

Sekarang, kita memiliki connection string , kita perlu membuat koneksi menggunakan OLEDB dan membukanya

             // Create the connection object
            OleDbConnection oledbConn = new OleDbConnection(connString);
           
            // Open connection
            oledbConn.Open();

Baca file excel menggunakan koneksi OLEDB dan isi dengan dataset

  //here sheet name is Sample-spreadsheet-file, usually it is Sheet1, Sheet2 etc..
                OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sample-spreadsheet-file$]", oledbConn);

                // Create new OleDbDataAdapter
                OleDbDataAdapter oleda = new OleDbDataAdapter();

                oleda.SelectCommand = cmd;

                // Create a DataSet which will hold the data extracted from the worksheet.
                DataSet ds = new DataSet();

                // Fill the DataSet from the data extracted from the worksheet.
                oleda.Fill(ds, "Employees");

pada kode diatas Sample-spreadsheet-file adalah nama Sheet

Catatan. Dengan bantuan nama sheet, Anda bisa merujuk ke data Excel, Anda perlu menggunakan '$' dengan nama sheet, mis. g. Pilih * dari [Sheet1$]

Sekarang lewati setiap baris lembar excel dan cetak di aplikasi Console

 //loop through each row
                foreach(var m in ds.Tables[0].DefaultView)
                {
                    Console.WriteLine(((System.Data.DataRowView)m).Row.ItemArray[0] +" "+((System.Data.DataRowView)m).Row.ItemArray[1] +" "+((System.Data.DataRowView)m).Row.ItemArray[2]);

                }
_

Jika Anda menggunakan ASP. NET, Anda dapat mengikatnya dengan Grid View menggunakan kode di bawah ini alih-alih mencetaknya

            // Bind the data to the GridView
            GridView1.DataSource = ds.Tables[0].DefaultView;
            GridView1.DataBind();

Sekarang, kita telah membahas setiap langkah, misalkan ini adalah file Excel

Bagaimana membaca data dari excel menggunakan ole db?

dan lihat kode di bawah ini di aplikasi Konsol Anda, bangun dan jalankan

using System;
using System.Data;
using System.Data.OleDb;


namespace CSharpReadExcelFile
{
    class Program
    {
        static void Main(string[] args)
        {
            //this is the connection string which has OLDB 4.0 Connection and Source URL of file
            //use HDR=YES if first excel row contains headers, HDR=NO means your excel's first row is not headers and it's data.
            string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Sample1.xls; Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'";
          

            // Create the connection object
            OleDbConnection oledbConn = new OleDbConnection(connString);
            try
            {
                // Open connection
                oledbConn.Open();

                // Create OleDbCommand object and select data from worksheet Sample-spreadsheet-file
                //here sheet name is Sample-spreadsheet-file, usually it is Sheet1, Sheet2 etc..
                OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sample-spreadsheet-file$]", oledbConn);

                // Create new OleDbDataAdapter
                OleDbDataAdapter oleda = new OleDbDataAdapter();

                oleda.SelectCommand = cmd;

                // Create a DataSet which will hold the data extracted from the worksheet.
                DataSet ds = new DataSet();

                // Fill the DataSet from the data extracted from the worksheet.
                oleda.Fill(ds, "Employees");

                //loop through each row
                foreach(var m in ds.Tables[0].DefaultView)
                {
                    Console.WriteLine(((System.Data.DataRowView)m).Row.ItemArray[0] +" "+((System.Data.DataRowView)m).Row.ItemArray[1] +" "+((System.Data.DataRowView)m).Row.ItemArray[2]);

                }
           
            }
            catch (Exception e)
            {
                Console.WriteLine("Error :" + e.Message);
            }
            finally
            {
                // Close connection
                oledbConn.Close();
            }
        }
    }
}
_

Output dari kode di atas akan menjadi seperti di bawah ini

Bagaimana membaca data dari excel menggunakan ole db?

Sekarang, jika Anda bekerja pada sistem operasi 64 bit, Anda mungkin mendapatkan kesalahan ini "The 'Microsoft. Jet. OLEDB. 4. Penyedia 0' tidak terdaftar di mesin lokal. "

Mengatasi kesalahan ini. Jika aplikasi Anda berbasis Desktop, kompilasi EXE Anda dengan CPU x86 (Menu Tools, Options, pilih Projects And Solutions, centang show advanced build configurations. Sekarang di Build Menu Anda akan dapat pergi ke Config Manager dan mengatur output ke x86. )

Jika aplikasi Anda berbasis web, maka Aktifkan 'Aplikasi 32-Bit' di kumpulan aplikasi

Di IIS, ubah pengaturan "Aktifkan Aplikasi 32-bit" ke True, di Pengaturan Lanjutan untuk Kumpulan Aplikasi

Kerugian menggunakan OLEDB untuk Excel

Dengan OLEDB, Anda tidak dapat memformat data yang Anda sisipkan/perbarui di lembar EXCEL tetapi Interop dapat melakukannya dengan efisien. Anda tidak dapat melakukan operasi matematika apa pun atau mengerjakan grafik menggunakan OLEDB, tetapi ini benar-benar cara yang baik untuk memasukkan/memperbarui data di EXCEL di mana tidak ada aplikasi Excel yang diinstal

Membaca file Excel menggunakan EPPlus

Jika Anda tidak ingin menggunakan OleDb, Anda dapat mencoba menggunakan solusi berbasis paket EPPlus Nuget

Untuk ini, Anda harus menginstal EPPlus, jadi buka "Tools"-> "Nuget package manager"-> "Kelola Nuget untuk solusi ini" -> Pilih tab "Browse" dan cari "EPPlus", lalu instal nuget

Bagaimana membaca data dari excel menggunakan ole db?

Setelah Anda menginstal paket, di aplikasi Konsol Anda "Program. cs", Anda dapat menggunakan kode di bawah ini

using OfficeOpenXml;
using System;
using System.IO;


namespace ReadExcelInCsharp
{
    class Program
    {
        static void Main(string[] args)
        {
            //provide file path
            FileInfo existingFile = new FileInfo(@"D:\sample_XLSX.xlsx");
            //use EPPlus
            using (ExcelPackage package = new ExcelPackage(existingFile))
            {
                //get the first worksheet in the workbook
                ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
                int colCount = worksheet.Dimension.End.Column;  //get Column Count
                int rowCount = worksheet.Dimension.End.Row;     //get row count
                for (int row = 1; row <= rowCount; row++)
                {
                    for (int col = 1; col <= colCount; col++)
                    {
                        //Print data, based on row and columns position
                        Console.WriteLine(" Row:" + row + " column:" + col + " Value:" + worksheet.Cells[row, col].Value?.ToString().Trim());
                    }
                }
            }
        }
    }
}

Berikut adalah gambar yang menampilkan output aplikasi konsol dengan contoh file excel (. xlsx), kami menggunakan. xlsx di sini untuk dibaca dalam C# menggunakan EPPlus

Bagaimana membaca data dari excel menggunakan ole db?

Anda dapat menggunakan contoh EPPlus di atas untuk bekerja. NET Core C# juga, untuk membaca file excel. Inti BERSIH

Baca Excel menggunakan MS Office Interop

Anda juga dapat membaca file Excel di C# menggunakan MS Office Interop dengan mudah

Pertama Anda harus menambahkan referensi untuk "Microsoft.Office.Interop.Excel", jadi di Konsol, Windows atau Aplikasi Web Anda, klik kanan pada "Referensi" dan kemudian di "Majelis" cari "Microsoft. Kantor. Interop. Unggul"

Bagaimana membaca data dari excel menggunakan ole db?

Jadi, inilah Kode C# untuk itu, mengingat kami memiliki contoh file XLSX seperti di atas

using Microsoft.Office.Interop.Excel;
using System;

namespace ReadExcelCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            Application excelApp = new Application();
            if (excelApp != null)
            {
                Workbook excelWorkbook = excelApp.Workbooks.Open(@"D:\sample_XLSX.xlsx", 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
                Worksheet excelWorksheet = (Worksheet)excelWorkbook.Sheets[1];

                Range excelRange = excelWorksheet.UsedRange;
                int rowCount = excelRange.Rows.Count;
                int colCount = excelRange.Columns.Count;
                //get an object array of all of the cells in the worksheet (their values)
                object[,] valueArray = (object[,])excelRange.get_Value(
                            XlRangeValueDataType.xlRangeValueDefault);

                for (int i = 1; i <= rowCount; i++)
                {
                    for (int j = 1; j <= colCount; j++)
                    {
                     

                        Console.WriteLine(valueArray[i, j].ToString());
                    }
                }

                excelWorkbook.Close();
                excelApp.Quit();
            }
        }
    }
}
_

Keluaran

Bagaimana membaca data dari excel menggunakan ole db?

Seperti yang Anda lihat, kami telah menggunakan Interop untuk membuka dan membaca baris/kolom excel, salah satu kelemahan menggunakan Interop MS office adalah Anda perlu menginstalnya di Server juga

Bagaimana cara membaca file Excel menggunakan OLE DB?

Sebelum mulai Membaca/Menulis dari/dalam file Excel, kita perlu terhubung ke OLEDB menggunakan string koneksi, di sini OLEDB akan bertindak sebagai Jembatan antara program Anda dan EXCEL. .
Penyedia adalah penyedia OLEDB untuk file Excel, mis. g. , Jet. .
Sumber Data adalah jalur file dari file Excel yang akan dibaca

Bagaimana mengambil data dari database di Excel?

Berkas. Buku Kerja Excel .
Pilih Data > Dapatkan Data > Dari File > Dari Buku Kerja Excel
Dalam kotak dialog Telusuri Excel, telusuri atau ketik jalur ke file yang ingin Anda kueri
Pilih Buka

Bagaimana cara saya terhubung ke database ODBC di Excel?

Di Excel, buka tab Data. Klik Dari Sumber Lain, lalu klik Dari Wisaya Sambungan Data. Pada dialog yang terbuka, pilih ODBC DSN dan klik Next untuk melanjutkan. Sekarang pilih sumber data yang ingin Anda sambungkan, dan klik Berikutnya

Bagaimana cara membaca file Excel menggunakan ODBC di C#?

Panduan. .
Buka file Excel dan isi beberapa selnya lalu simpan di suatu tempat
Buka Mulai>Panel konfigurasi>Alat administrasi>ikon ODBC
Buka lalu pilih sistem sumber data tag. .
Klik tambah, maka Muncul jendela berikut. .
Pilih Driver do Microsoft Excel(*. xls)