• 文件流——Excel文件数据读写


    (1)连接字符串

    Excel97-2003

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'

    Excel2007

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties='Excel 12.0;HDR=False;IMEX=1'
    (2)读取
    返回值是一个数据集DataSet

    1.  public static DataSet LoadDataFromExcel(string filePath)  

    2.  {  

    3.      try  

    4.      {  

    5.          string strConn;  

    6.          strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";  

    7.          OleDbConnection OleConn = new OleDbConnection(strConn);  

    8.          OleConn.Open();  

    9.          String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等   

    10.  

    11.        OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);  

    12.        DataSet OleDsExcle = new DataSet();  

    13.        OleDaExcel.Fill(OleDsExcle, "Sheet1");  

    14.        OleConn.Close();  

    15.        return OleDsExcle;  

    16.    }  

    17.    catch (Exception err)  

    18.    {  

    19.        MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",  

    20.            MessageBoxButtons.OK, MessageBoxIcon.Information);  

    21.        return null;  

    22.    }  

    23.}  

    (3)写入
    参数exceltable是要导入excel的一个table

    1.  public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, string filePath)  

    2.          {  

    3.              Microsoft.Office.Interop.Excel.Application app =  

    4.                  new Microsoft.Office.Interop.Excel.ApplicationClass();  

    5.              try  

    6.              {  

    7.                  app.Visible = false;  

    8.                  Workbook wBook = app.Workbooks.Add(true);  

    9.                  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.            }  

            } 
  • 相关阅读:
    Java hibernate 遇到的问题:could not read a hi value
    Java 小知识
    Java 在使用@Select遇到的问题:拼接字符串将数组拼为了字符串
    飞逝的光阴
    终于回来了
    再说创客
    离开一段时间
    抛弃QP
    关于创客
    对DTU系统结构的重新思考
  • 原文地址:https://www.cnblogs.com/liusuqi/p/2873208.html
Copyright © 2020-2023  润新知