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;

}