C#操作Excel檔案(讀取Excel,寫入Excel)

來源:互聯網
上載者:User

看到論壇裡面不斷有人提問關於讀取excel和匯入excel的相關問題。閑暇時間將我所知道的對excel的操作加以總結,現在共用大家,希望給大家能夠給大家帶了一定的協助。
另外我們還要注意一些簡單的問題1.excel檔案只能儲存65535行資料,如果你的資料大於65535行,那麼就需要將excel分割存放了。2.關於亂碼,這主要是字元設定問題。

1.載入Excel(讀取excel內容)傳回值是一個DataSet

        //載入Excel         public static DataSet LoadDataFromExcel(string filePath)        {            try            {                string strConn;                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";                OleDbConnection OleConn = new OleDbConnection(strConn);                OleConn.Open();                String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名稱,比如sheet2,等等                 OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);                DataSet OleDsExcle = new DataSet();                OleDaExcel.Fill(OleDsExcle, "Sheet1");                OleConn.Close();                return OleDsExcle;            }            catch (Exception err)            {                MessageBox.Show("資料繫結Excel失敗!失敗原因:" + err.Message, "提示資訊",                    MessageBoxButtons.OK, MessageBoxIcon.Information);                return null;            }        }

2.寫入Excel內容,參數:excelTable是要匯入excel的一個table表

public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, string filePath)        {            Microsoft.Office.Interop.Excel.Application app =                new Microsoft.Office.Interop.Excel.ApplicationClass();            try            {                app.Visible = false;                Workbook wBook = app.Workbooks.Add(true);                Worksheet wSheet = wBook.Worksheets[1] as Worksheet;                if (excelTable.Rows.Count > 0)                {                    int row = 0;                    row = excelTable.Rows.Count;                    int col = excelTable.Columns.Count;                    for (int i = 0; i < row; i++)                    {                        for (int j = 0; j < col; j++)                        {                            string str = excelTable.Rows[i][j].ToString();                            wSheet.Cells[i + 2, j + 1] = str;                        }                    }                }                int size = excelTable.Columns.Count;                for (int i = 0; i < size; i++)                {                    wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;                }                //設定禁止彈出儲存和覆蓋的詢問提示框                 app.DisplayAlerts = false;                app.AlertBeforeOverwriting = false;                //儲存活頁簿                 wBook.Save();                //儲存excel檔案                 app.Save(filePath);                app.SaveWorkspace(filePath);                app.Quit();                app = null;                return true;            }            catch (Exception err)            {                MessageBox.Show("匯出Excel出錯!錯誤原因:" + err.Message, "提示資訊",                    MessageBoxButtons.OK, MessageBoxIcon.Information);                return false;            }            finally            {            }        }

轉載的朋友請一定註明出處謝謝!http://blog.csdn.net/gisfarmer/ 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.