How To Import Excel To Datagridview In C Sharp
How To Import Excel To Datagridview In C#


How To Import Excel To Datagridview In C# .Net Windows Application
This Tutorial Shows How To Import Excel To Datagridview In C# .Net Windows Application Using Visual Studio 2010 And Microsoft Excel 2010.
This application imports excel file to datagridview when you click import button. For the code to work you need to import/Add microsoft.office.interop.excel library to your project.
Form1.cs SOURCE CODE
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.Office.Interop.Excel; namespace HowToImportExcelToDataGridViewInCSharp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnImportExcelToDataGridView_Click(object sender, EventArgs e) { _Application importExcelToDataGridViewApp; _Workbook importExcelToDataGridViewWorkbook; _Worksheet importExcelToDataGridViewWorksheet; Range importExcelToDataGridViewRange; try { importExcelToDataGridViewApp = new Microsoft.Office.Interop.Excel.Application(); OpenFileDialog importExcelToDataGridViewOpenFileDialog = new OpenFileDialog(); //importExcelToDataGridViewOpenFileDialog.InitialDirectory = @"C:/Users/Authentic/Desktop"; //importExcelToDataGridViewOpenFileDialog.RestoreDirectory = true; //Dialog Box Title importExcelToDataGridViewOpenFileDialog.Title = "Import Excel File To DataGridView"; //filter Excel Files Only importExcelToDataGridViewOpenFileDialog.Filter = "Choose Excel File | *.xlsx;*.xls;*.xlm"; //If Open Button Is Clicked if (importExcelToDataGridViewOpenFileDialog.ShowDialog() == DialogResult.OK) { importExcelToDataGridViewWorkbook = importExcelToDataGridViewApp.Workbooks.Open(importExcelToDataGridViewOpenFileDialog.FileName); importExcelToDataGridViewWorksheet = importExcelToDataGridViewWorkbook.ActiveSheet; importExcelToDataGridViewRange = importExcelToDataGridViewWorksheet.UsedRange; //Start Importing from the second row. Since the first row is column header for (int excelWorkSheetRowIndex = 2; excelWorkSheetRowIndex < importExcelToDataGridViewRange.Rows.Count + 1; excelWorkSheetRowIndex++) { //Convert The Path to image and display it in datagridviewimagecolumn Image excelWorkSheetImage = Image.FromFile(importExcelToDataGridViewWorksheet.Cells[excelWorkSheetRowIndex, 7].Value); dgvImportExcelToDatagridGridView1.Rows.Add(importExcelToDataGridViewWorksheet.Cells[excelWorkSheetRowIndex, 1].Value, importExcelToDataGridViewWorksheet.Cells[excelWorkSheetRowIndex, 2].Value, importExcelToDataGridViewWorksheet.Cells[excelWorkSheetRowIndex, 3].Value, importExcelToDataGridViewWorksheet.Cells[excelWorkSheetRowIndex, 4].Value, importExcelToDataGridViewWorksheet.Cells[excelWorkSheetRowIndex, 5].Value, importExcelToDataGridViewWorksheet.Cells[excelWorkSheetRowIndex, 6].Value, importExcelToDataGridViewWorksheet.Cells[excelWorkSheetRowIndex, 7].Value, excelWorkSheetImage); } } } catch (Exception importExcelToDataGridViewException) { MessageBox.Show("Error" + importExcelToDataGridViewException); } } private void Form1_Load(object sender, EventArgs e) { //change DataGridView Height On Form Load dgvImportExcelToDatagridGridView1.RowTemplate.Height = 50; } } }
Form1.Designer.cs SOURCE CODE
namespace HowToImportExcelToDataGridViewInCSharp { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.dgvImportExcelToDatagridGridView1 = new System.Windows.Forms.DataGridView(); this.btnImportExcelToDataGridView = new System.Windows.Forms.Button(); this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Column8 = new System.Windows.Forms.DataGridViewImageColumn(); ((System.ComponentModel.ISupportInitialize)(this.dgvImportExcelToDatagridGridView1)).BeginInit(); this.SuspendLayout(); // // dgvImportExcelToDatagridGridView1 // this.dgvImportExcelToDatagridGridView1.AllowUserToAddRows = false; this.dgvImportExcelToDatagridGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvImportExcelToDatagridGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.Column1, this.Column2, this.Column3, this.Column6, this.Column4, this.Column5, this.Column7, this.Column8}); this.dgvImportExcelToDatagridGridView1.Location = new System.Drawing.Point(3, 4); this.dgvImportExcelToDatagridGridView1.Name = "dgvImportExcelToDatagridGridView1"; this.dgvImportExcelToDatagridGridView1.Size = new System.Drawing.Size(829, 336); this.dgvImportExcelToDatagridGridView1.TabIndex = 0; // // btnImportExcelToDataGridView // this.btnImportExcelToDataGridView.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnImportExcelToDataGridView.Location = new System.Drawing.Point(426, 346); this.btnImportExcelToDataGridView.Name = "btnImportExcelToDataGridView"; this.btnImportExcelToDataGridView.Size = new System.Drawing.Size(406, 42); this.btnImportExcelToDataGridView.TabIndex = 1; this.btnImportExcelToDataGridView.Text = "Import Excel To DataGridView"; this.btnImportExcelToDataGridView.UseVisualStyleBackColor = true; this.btnImportExcelToDataGridView.Click += new System.EventHandler(this.btnImportExcelToDataGridView_Click); // // Column1 // this.Column1.HeaderText = "Full Name"; this.Column1.Name = "Column1"; // // Column2 // this.Column2.HeaderText = "Email"; this.Column2.Name = "Column2"; // // Column3 // this.Column3.HeaderText = "Phone Number"; this.Column3.Name = "Column3"; // // Column6 // this.Column6.HeaderText = "Language"; this.Column6.Name = "Column6"; // // Column4 // this.Column4.HeaderText = "Country"; this.Column4.Name = "Column4"; // // Column5 // this.Column5.HeaderText = "Gender"; this.Column5.Name = "Column5"; // // Column7 // this.Column7.HeaderText = "Image Path"; this.Column7.Name = "Column7"; // // Column8 // this.Column8.HeaderText = "Image"; this.Column8.ImageLayout = System.Windows.Forms.DataGridViewImageCellLayout.Stretch; this.Column8.Name = "Column8"; this.Column8.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.Column8.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(836, 394); this.Controls.Add(this.btnImportExcelToDataGridView); this.Controls.Add(this.dgvImportExcelToDatagridGridView1); this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); ((System.ComponentModel.ISupportInitialize)(this.dgvImportExcelToDatagridGridView1)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.DataGridView dgvImportExcelToDatagridGridView1; private System.Windows.Forms.Button btnImportExcelToDataGridView; private System.Windows.Forms.DataGridViewTextBoxColumn Column1; private System.Windows.Forms.DataGridViewTextBoxColumn Column2; private System.Windows.Forms.DataGridViewTextBoxColumn Column3; private System.Windows.Forms.DataGridViewTextBoxColumn Column6; private System.Windows.Forms.DataGridViewTextBoxColumn Column4; private System.Windows.Forms.DataGridViewTextBoxColumn Column5; private System.Windows.Forms.DataGridViewTextBoxColumn Column7; private System.Windows.Forms.DataGridViewImageColumn Column8; } }
Program.cs SOURCE CODE
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace HowToImportExcelToDataGridViewInCSharp { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }