C#将excel导入到datagridview

我想导入excel文件到datagridview1,我得到这个错误。 我怎样才能解决这个错误?

错误CS1061“IExcelDataReader”不包含“IsFirstRowAsColumnNames”的定义,并且没有find接受types“IExcelDataReader”的第一个参数的扩展方法“IsFirstRowAsColumnNames”(是否缺less使用指令或程序集引用?

private void dosyasec_Click(object sender, EventArgs e) { using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Workbook|*.xlsx*", ValidateNames = true }) { if (ofd.ShowDialog() == DialogResult.OK) { FileStream fs = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read); IExcelDataReader reader = ExcelReaderFactory.CreateOpenXmlReader(fs); // DataSet result = reader.AsDataSet(); reader.IsFirstRowAsColumnNames = true; result = reader.AsDataSet(); comboBox1.Items.Clear(); foreach (DataTable dt in result.Tables) comboBox1.Items.Add(dt.TableName); reader.Close(); } } } 

这听起来像你跑到这里提到的同样的事情: https : //github.com/ExcelDataReader/ExcelDataReader/issues/261

基本上,读卡器configuration信息现在设置不同。 也许你是从一个过时的例子中得到你的代码,或者这是现有的代码,最近更新了阅读器库。 无论如何,我认为你所要做的就是使用链接中提到的方法:

 var result = reader.AsDataSet(new ExcelDataSetConfiguration() { ConfigureDataTable = (_) => new ExcelDataTableConfiguration() { UseHeaderRow = true } }); 

除非我真的愚蠢,否则会使你现有的方法如下所示:

  private void dosyasec_Click(object sender, EventArgs e) { using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Workbook|*.xlsx*", ValidateNames = true }) { if (ofd.ShowDialog() == DialogResult.OK) { FileStream fs = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read); IExcelDataReader reader = ExcelReaderFactory.CreateOpenXmlReader(fs); var result = reader.AsDataSet( new ExcelDataSetConfiguration() { ConfigureDataTable = (_) => new ExcelDataTableConfiguration() { UseHeaderRow = true } } ); comboBox1.Items.Clear(); foreach (DataTable dt in result.Tables) comboBox1.Items.Add(dt.TableName); reader.Close(); } } }