溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在C#中利用winform 讀取Excel表

發(fā)布時間:2021-01-14 14:40:25 來源:億速云 閱讀:674 作者:Leah 欄目:開發(fā)技術(shù)

怎么在C#中利用winform 讀取Excel表?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、界面部分:

首先,打開visual studio新建項目;

怎么在C#中利用winform 讀取Excel表

然后使用“工具箱”添加控件:分別添加button,datagridview,textbox三種窗體;

怎么在C#中利用winform 讀取Excel表

怎么在C#中利用winform 讀取Excel表

所得到的界面圖如圖所示:(多加了幾個文本框)

怎么在C#中利用winform 讀取Excel表

二、代碼部分:

1、添加命名空間:

using System.Data.OleDb; //命名空間

2、添加類:

//根據(jù)excle的路徑把第一個sheel中的內(nèi)容放入datatable
    public static DataTable ReadExcelToTable(string path)//excel存放的路徑
    {
      try
      {
 
        //連接字符串
        string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; // Office 07及以上版本 不能出現(xiàn)多余的空格 而且分號注意
        //string connstring = Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; //Office 07以下版本 
        using (OleDbConnection conn = new OleDbConnection(connstring))
        {
          conn.Open();
          DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字
          string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一個sheet的名字
          string sql = string.Format("SELECT * FROM [{0}]", firstSheetName); //查詢字符串          //string sql = string.Format("SELECT * FROM [{0}] WHERE [日期] is not null", firstSheetName); //查詢字符串
          OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring);
          DataSet set = new DataSet();
          ada.Fill(set);
          return set.Tables[0];
        }
      }
      catch (Exception)
      {
        return null;
      }
 
    }

3、在button中添加調(diào)用代碼:

  private void button1_Click(object sender, EventArgs e)
    {
      string folder_path = this.textBox1.Text.Trim();
       dataGridView1.DataSource = null; //每次打開清空內(nèi)容
       DataTable dt = ReadExcelToTable(folder_path);
      dataGridView1.DataSource = dt;  
 
    }

看完上述內(nèi)容,你們掌握怎么在C#中利用winform 讀取Excel表的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI