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; 
}

原文地址:https://www.cnblogs.com/kevin1988/p/3508165.html