C#讀取Excel表格式資料到DataGridView中和匯出DataGridView中的資料到Excel

來源:互聯網
上載者:User

標籤:tns   建立資料庫   except   gre   注意   adapter   .sh   符號   技術   

  1. 其實想在datagridview中顯示excel表格中的資料跟讀取資料庫中的資料沒什麼差別,只不過是建立資料庫連接的時候串連欄位稍有差別。
private void btnShow_Click(object sender, EventArgs e)        {            OpenFileDialog fd = new OpenFileDialog();//首先根據開啟檔案對話方塊,選擇excel表格            ofd.Filter = "表格|*.xls";//開啟檔案對話方塊篩選器            string strPath;//檔案完整的路徑名            if (ofd.ShowDialog() == DialogResult.OK)            {                try                {                    strPath = ofd.FileName;                    string strCon = "provider=microsoft.jet.oledb.4.0;data source=" + strPath + ";extended properties=excel 8.0";//關鍵是紅色地區                    OleDbConnection Con = new OleDbConnection(strCon);//建立串連                    string strSql = "select * from [Sheet1$]";//表名的寫法也應注意不同,對應的excel表為sheet1,在這裡要在其後加貨幣符號$,並用中括弧                    OleDbCommand Cmd = new OleDbCommand(strSql, Con);//建立要執行的命令                    OleDbDataAdapter da = new OleDbDataAdapter(Cmd);//建立資料配接器                    DataSet ds = new DataSet();//建立資料集                    da.Fill(ds, "shyman");//把資料配接器中的資料讀到資料集中的一個表中(此處表名為shyman,可以任取表名)                    //指定datagridview1的資料來源為資料集ds的第一張表(也就是shyman表),也可以寫ds.Table["shyman"]       dataGridView1.DataSource = ds.Tables[0];                }                catch (Exception ex)                {                    MessageBox.Show(ex.Message);//捕捉異常                }            }        }

運行結果如下:

2.匯出DataGridView中的資料到Excel的方法:

public void ToExcel(DataGridView dataGridView1)        {            try            {                //沒有資料的話就不往下執行                  if (dataGridView1.Rows.Count == 0)                    return;                //執行個體化一個Excel.Application對象                  Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();                //讓後台執行設定為不可見,為true的話會看到開啟一個Excel,然後資料在往裡寫                  excel.Visible = true;                //新增加一個活頁簿,Workbook是直接儲存,不會彈出儲存對話方塊,加上Application會彈出儲存對話方塊,值為false會報錯                  excel.Application.Workbooks.Add(true);                //產生Excel中列頭名稱                  for (int i = 0; i < dataGridView1.Columns.Count; i++)                {                    if (this.dataGridView1.Columns[i].Visible==true)                    {                        excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;                    }                                  }                //把DataGridView當前頁的資料儲存在Excel中                  for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)                {                    System.Windows.Forms.Application.DoEvents();                    for (int j = 0; j < dataGridView1.Columns.Count; j++)                    {                        if (this.dataGridView1.Columns[j].Visible==true)                        {                            if (dataGridView1[j, i].ValueType == typeof(string))                            {                                excel.Cells[i + 2, j + 1] = "‘" + dataGridView1[j, i].Value.ToString();                            }                            else                            {                                excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();                            }                        }                                           }                }                //設定禁止彈出儲存和覆蓋的詢問提示框                  excel.DisplayAlerts = false;                excel.AlertBeforeOverwriting = false;                //儲存活頁簿                  excel.Application.Workbooks.Add(true).Save();                //儲存excel檔案                  excel.Save("D:" + "\\KKHMD.xls");                //確保Excel進程關閉                  excel.Quit();                excel = null;                GC.Collect();//如果不使用這條語句會導致excel進程無法正常退出,使用後正常退出                MessageBox.Show(this,"檔案已經成功匯出!","資訊提示");            }            catch (Exception ex)            {                MessageBox.Show(ex.Message, "錯誤提示");            }        }

 

C#讀取Excel表格式資料到DataGridView中和匯出DataGridView中的資料到Excel

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.