| Thành viên | Trả lời |
lenh_ho_xung
 Tieu ngao giang ho 42 bài
| 15-7-2008 10:18:1 using System.Data; using System.Data.OleDb;
...
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + [Your Excel File Name Here] + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
objAdapter1.Fill(objDataset1);
objConn.Close(); ------------------
Ngoài automation ra còn cách này, thao tác giống hệt như với CSDL. Khá hay, ngày xưa mình dùng rồi mà quên mất. Cái này copy từ
http://my.opera.com/dunghoangit/blog/2008/01/01/c-sharp-example-how-to-read-an-excel-file-with-oledb-and-a-simple-sql-query
|
lenh_ho_xung
 Tieu ngao giang ho 42 bài
| 15-7-2008 10:18:49 Cái này copy từ codeproject
-------- /// <summary> /// This mehtod retrieves the excel sheet names from /// an excel workbook. /// </summary> /// <param name="excelFile">The excel file.</param> /// <returns>String[]</returns> private String[] GetExcelSheetNames(string excelFile) { OleDbConnection objConn = null; System.Data.DataTable dt = null;
try { // Connection String. Change the excel file to the file you // will search. String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";Extended Properties=Excel 8.0;"; // Create connection object by using the preceding connection string. objConn = new OleDbConnection(connString); // Open connection with the database. objConn.Open(); // Get the data table containg the schema guid. dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if(dt == null) { return null; }
String[] excelSheets = new String[dt.Rows.Count]; int i = 0;
// Add the sheet name to the string array. foreach(DataRow row in dt.Rows) { excelSheets = row["TABLE_NAME"].ToString(); i++; }
// Loop through all of the sheets if you want too... for(int j=0; j < excelSheets.Length; j++) { // Query each excel sheet. }
return excelSheets; } catch(Exception ex) { return null; } finally { // Clean up. if(objConn != null) { objConn.Close(); objConn.Dispose(); } if(dt != null) { dt.Dispose(); } } }
------------ http://www.codeproject.com/KB/aspnet/getsheetnames.aspx
|
 |