• C#读取Excel 2003/2007的文件(注意连接字符串)


    以读取access数据集的方式读取  

    For excel 2007:

        private DataSet GetExcelData(string str)
        {
            string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + str + ";Extended Properties="Excel 12.0;HDR=YES"";
            OleDbConnection myConn = new OleDbConnection(strCon);
            string strCom = " SELECT * FROM [Sheet1$]";
            myConn.Open();
            OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
            DataSet myDataSet = new DataSet();
            myCommand.Fill(myDataSet, "[Sheet1$]");
            myConn.Close();
            return myDataSet;
        }

    For excel2003:

    连接字符串改为:

    string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source ="+str+";Extended Properties=Excel 8.0";

    /// <summary> 
    /// 读取Excel文档 
    /// </summary> 
    /// <param name="Path">文件名称</param> 
    /// <returns>返回一个数据集</returns> 
    public DataSet ExcelToDS(string Path) 

    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; 
    OleDbConnection conn = new OleDbConnection(strConn); 
    conn.Open(); 
    string strExcel = ""; 
    OleDbDataAdapter myCommand = null; 
    DataSet ds = null; 
    strExcel="select * from [sheet1$]"; 
    myCommand = new OleDbDataAdapter(strExcel, strConn); 
    ds = new DataSet(); 
    myCommand.Fill(ds,"table1"); 
    return ds; 



    /// <summary> 
    /// 写入Excel文档 
    /// </summary> 
    /// <param name="Path">文件名称</param> 
    public bool SaveFP2toExcel(string Path) 

    try 

    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ Path +";"+"Extended Properties=Excel 8.0;"; 
    OleDbConnection conn = new OleDbConnection(strConn); 
    conn.Open(); 
    System.Data.OleDb.OleDbCommand cmd=new OleDbCommand (); 
    cmd.Connection =conn; 
    //cmd.CommandText ="UPDATE [sheet1$] SET 姓名='2005-01-01' WHERE 工号='日期'"; 
    //cmd.ExecuteNonQuery (); 
    for(int i=0;i<fp2.Sheets [0].RowCount -1;i++) 

    if(fp2.Sheets [0].Cells[i,0].Text!="") 

    cmd.CommandText ="INSERT INTO [sheet1$] (工号,姓名,部门,职务,日期,时间) VALUES('"+fp2.Sheets [0].Cells[i,0].Text+ "','"+ 
    fp2.Sheets [0].Cells[i,1].Text+"','"+fp2.Sheets [0].Cells[i,2].Text+"','"+fp2.Sheets [0].Cells[i,3].Text+ 
    "','"+fp2.Sheets [0].Cells[i,4].Text+"','"+fp2.Sheets [0].Cells[i,5].Text+"')"; 
    cmd.ExecuteNonQuery (); 


    conn.Close (); 
    return true; 

    catch(System.Data.OleDb.OleDbException ex) 

    System.Diagnostics.Debug.WriteLine ("写入Excel发生错误:"+ex.Message ); 

    return false; 
    }

  • 相关阅读:
    【杂文】搞一个对拍程序
    【学习笔记】线段树详解(全)
    【杂文】5亿大质数表(5e8)
    【学习笔记】OI玄学道—代码坑点
    【题解】动态逆序对 [CQOI2011] [P3157] [BZOJ3295] [P1393]
    【题解】永无乡 [HNOI2012] [BZOJ2733] [P3224]
    【题解】晋升者计数 Promotion Counting [USACO 17 JAN] [P3605]
    【题解】古代猪文 [SDOI2010] [BZOJ1951] [P2480]
    【题解】PERIOD
    Navicat Premium 12连接ubuntu18 ,Mysql 5.7.27-0
  • 原文地址:https://www.cnblogs.com/kevin1988/p/3508165.html
Copyright © 2020-2023  润新知