This article will show how to fill a ListView Control with the data loaded into a DataTable. You may use a DataTable bind it to a Grid Control to show the output of a query, but data binding of controls is not always the ideal method of accessing the data (You may encounter problems with the DataBinding). A DataTable maintains a copy of the entire resultset in the client systems memory in case you need to make changes to a row. Instead of using a bound grid and a DataTable, we can use the listview control with the view set to details mode and fill it with the data from a DataTable.

Demo

Take one Button and one ListView on windows form.  And set the some properties of the ListView as per given below.

   // Set the view to show details.
    listView1.View = View.Details;

    // Allow the user to edit item text.
    listView1.LabelEdit = true;

    // Allow the user to rearrange columns.
    listView1.AllowColumnReorder = true;

    // Select the item and subitems when selection is made.
    listView1.FullRowSelect = true;

    // Display grid lines.
    listView1.GridLines = true;

    // Sort the items in the list in ascending order.
    listView1.Sorting = SortOrder.Ascending;

After setting above properties of ListView web form look like as below figure.

Open and Read an Excel Spreadsheet into a ListView in Asp.NET

Write below code on button ‘Display’

private void btnDisplay_Click(object sender, EventArgs e)

        {
            // Create Data Table for MS-Office 2007 or 2003
 
            System.Data.DataTable dtExcel = new System.Data.DataTable();
            //DataTable Name
            dtExcel.TableName = "MyExcelData";
            //Path of excel file
            string SourceConstr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='F:\avi\information.xlsx';Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'";
            //connectin
            OleDbConnection con = new OleDbConnection(SourceConstr);
            //Query string
            string query = "Select * from [Sheet1$]";
            //DataAdapter object
            OleDbDataAdapter data = new OleDbDataAdapter(query, con);
            //fill record into DataTable
            data.Fill(dtExcel);
 
            // Attach Subitems to the ListView
            listView1.Columns.Add("Name", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("Address", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("Contact", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("Email Id", 100, HorizontalAlignment.Left);
 
            // Clear the ListView control
            listView1.Items.Clear();
 
            // Display items in the ListView control
            for (int i = 0; i < dtExcel.Rows.Count; i++)
            {
                DataRow drow = dtExcel.Rows[i];
 
                // Only row that have not been deleted
                if (drow.RowState != DataRowState.Deleted)
                {
                    // Define the list items
                    ListViewItem lvi = new ListViewItem(drow["Name"].ToString());
                    lvi.SubItems.Add(drow["Address"].ToString());
                    lvi.SubItems.Add(drow["Contact"].ToString());
                    lvi.SubItems.Add(drow["Email Id"].ToString());
 
                    // Add the list items to the ListView
                    listView1.Items.Add(lvi);
                }
            }
 
        }

 Output

Open and Read an Excel Spreadsheet into a ListView in Asp.NET


  Modified On Nov-21-2017 12:29:35 AM

Leave Comment