Search code examples
c#datagridviewexceldatareader

c# importing excel to datagridview doesn't work


I am using ExcelDataReader here.

I don't know why below code doesn't work. It doesn't generate any error but it still doesn't show excel data. It simply doesn't do anything after loading excel file. I am new to C# and after 5 hours of digging I feel frustrated since I don't know why this doesn't work.

using Excel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication5
{
    public partial class ExcelForm : Form
    {
        public ExcelForm()
        {
            InitializeComponent();
        }



        private void ExcelForm_Load(object sender, EventArgs e)
        {

        }


        DataSet result;

    private void btnOpen_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel(.xls)|*.xls|Excel(.xlsx)|*.xlsx", ValidateNames = true })
            {
                if(ofd.ShowDialog() == DialogResult.OK)
                {
                    FileStream fs = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
                    IExcelDataReader reader;
                    if (ofd.FilterIndex == 1)
                        reader = ExcelReaderFactory.CreateBinaryReader(fs);
                    else
                        reader = ExcelReaderFactory.CreateOpenXmlReader(fs);
                    reader.IsFirstRowAsColumnNames = true;
                    result = reader.AsDataSet();
                    reader.Close();

                    dataGridView.DataSource = result;




                }
            }
        }

    }
}

Solution

  • dataGridView.DataSource = DtSet.Tables[0];