您的位置:首页 > 编程语言 > C#

C#操作Excel文件(读取Excel,写入Excel)

2012-04-02 11:48 671 查看
看到论坛里面不断有人提问关于读取excel和导入excel的相关问题。闲暇时间将我所知道的对excel的操作加以总结,现在共享大家,希望给大家能够给大家带了一定的帮助。

另外我们还要注意一些简单的问题1.excel文件只能存储65535行数据,如果你的数据大于65535行,那么就需要将excel分割存放了。2.关于乱码,这主要是字符设置问题。

1.加载Excel(读取excel内容)返回值是一个DataSet

01.//加载Excel
02.public static DataSet LoadDataFromExcel(string filePath)
03.{
04.    try
05.    {
06.        string strConn;
07.        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
08.        OleDbConnection OleConn = new OleDbConnection(strConn);
09.        OleConn.Open();
10.        String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等
11.
12.        OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
13.        DataSet OleDsExcle = new DataSet();
14.        OleDaExcel.Fill(OleDsExcle, "Sheet1");
15.        OleConn.Close();
16.        return OleDsExcle;
17.    }
18.    catch (Exception err)
19.    {
20.        MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",
21.            MessageBoxButtons.OK, MessageBoxIcon.Information);
22.        return null;
23.    }
24.}


2.写入Excel内容,参数:excelTable是要导入excel的一个table表

01.public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, string filePath)
02.        {
03.            Microsoft.Office.Interop.Excel.Application app =
04.                new Microsoft.Office.Interop.Excel.ApplicationClass();
05.            try
06.            {
07.                app.Visible = false;
08.                Workbook wBook = app.Workbooks.Add(true);
09.                Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
10.                if (excelTable.Rows.Count > 0)
11.                {
12.                    int row = 0;
13.                    row = excelTable.Rows.Count;
14.                    int col = excelTable.Columns.Count;
15.                    for (int i = 0; i < row; i++)
16.                    {
17.                        for (int j = 0; j < col; j++)
18.                        {
19.                            string str = excelTable.Rows[i][j].ToString();
20.                            wSheet.Cells[i + 2, j + 1] = str;
21.                        }
22.                    }
23.                }
24.
25.                int size = excelTable.Columns.Count;
26.                for (int i = 0; i < size; i++)
27.                {
28.                    wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;
29.                }
30.                //设置禁止弹出保存和覆盖的询问提示框
31.                app.DisplayAlerts = false;
32.                app.AlertBeforeOverwriting = false;
33.                //保存工作簿
34.                wBook.Save();
35.                //保存excel文件
36.                app.Save(filePath);
37.                app.SaveWorkspace(filePath);
38.                app.Quit();
39.                app = null;
40.                return true;
41.            }
42.            catch (Exception err)
43.            {
44.                MessageBox.Show("导出Excel出错!错误原因:" + err.Message, "提示信息",
45.                    MessageBoxButtons.OK, MessageBoxIcon.Information);
46.                return false;
47.            }
48.            finally
49.            {
50.            }
51.        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: