这篇文章向您展示如何在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中。