這篇文章向您展示如何在C#Windows Forms Application中使用ExcelDataReader,ExcelDataReader.DataSet打開和讀取Excel文件。
創建一個新的Windows窗體應用程序項目,然后打開窗體設計器。您可以將TextBox,Label,Button,Combobox和DataGridView從Visual Studio工具箱拖到winform中。
如何在C#中打開Excel文件
您需要從Manage Nuget Packages安裝 ExcelDataReader,ExcelDataReader.DataSet到您的項目。
- ExcelDataReader:這是用C#編寫讀取一個輕量級和快速的Microsoft Excel文件庫(2.0-2007)。
- ExcelDataReader.DataSet:這是讀取Microsoft Excel文件到擴展System.Data.DataSet中。
接下來,將click事件處理程序添加到“瀏覽”按鈕,您可以選擇excel文件,然后在c#中打開並讀取excel文件中的數據。
private void BtnBrowse_Click(object sender, EventArgs e) { using (OpenFileDialog openFileDialog = new OpenFileDialog() { Filter = "Excel 97-2003 Workbook|*.xls|Excel Workbook|*.xlsx" }) { if (openFileDialog.ShowDialog() == DialogResult.OK) { txtFilename.Text = openFileDialog.FileName; using (var stream = File.Open(openFileDialog.FileName, FileMode.Open, FileAccess.Read)) { using (IExcelDataReader reader = ExcelReaderFactory.CreateReader(stream)) { DataSet result = reader.AsDataSet(new ExcelDataSetConfiguration() { ConfigureDataTable = (_) => new ExcelDataTableConfiguration() { UseHeaderRow = true } }); tableCollection = result.Tables; cboSheet.Items.Clear(); foreach (DataTable table in tableCollection) cboSheet.Items.Add(table.TableName);//add sheet to combobox } } } } }
使用ExcelReaderFactory.CreateReader 方法可以輕松讀取c#中的excel 97-2003或excel工作簿。
最后,將SelectedIndexChanged事件處理程序添加到Combobox中,您可以選擇工作表名稱,然后將表中的數據加載到 DataGridView中。
DataTable dt = tableCollection[cboSheet.SelectedItem.ToString()];
dataGridView1.DataSource = dt;
通過上面的c#示例,您已經學習了如何使用ExcelDataReader和 ExcelDataReader.DataSet庫將Excel文件讀取和導入到C#中的DataGridView中。