[英]C# import excel to datagridview
我想將Excel文件導入到datagridview1,並且出現此錯誤。 我該如何解決這個錯誤?
錯誤CS1061'IExcelDataReader'不包含'IsFirstRowAsColumnNames'的定義,並且找不到擴展方法'IsFirstRowAsColumnNames'接受類型為'IExcelDataReader'的第一個參數(您是否缺少using指令或程序集引用?)
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
基本上,現在該讀取器配置信息的設置有所不同。 也許您是從過時的示例中獲取了代碼,或者這是現有代碼,並且閱讀器庫最近已更新。 無論如何,我認為您需要做的就是使用鏈接中提到的方法:
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();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.