2017-11-02 8 views
0

excelファイルをdatagridview1にインポートしたいのですが、このエラーが発生しています。 このエラーを解決するにはどうすればよいですか?C#import excel to datagridview

エラーCS1061 'IExcelDataReader'に 'IsFirstRowAsColumnNames'の定義がなく、 'IExcelDataReader'タイプの最初の引数を受け入れる拡張メソッド 'IsFirstRowAsColumnNames'が見つかりませんでした(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(); 
     } 
    } 

} 
+0

をいずれにせよ、私はあなたがする必要があるすべては、リンクに記載されたアプローチを使用していると思います私はあなたがライブラリから最新のバージョンをダウンロードしても、古いコードの例を使用していると思います。 – Lukas

答えて

0

あなたはここに述べたと同じことに実行しているように聞こえる:基本的にhttps://github.com/ExcelDataReader/ExcelDataReader/issues/261

、リーダーの構成情報が今異なって設定されていること。おそらく古いコードからコードを入手したか、またはこれが既存のコードであり、リーダーライブラリが最近更新されたかのいずれかです。私は本当にgoofedきていない限り、このような既存の方法の何かになるだろうこと、

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(); 
      } 
     } 

    }