Bài viết này sẽ hướng dẫn các bạn cách làm sao để đọc dữ liệu từ file Excel.
Giới thiệu
Ứng dụng Excel đã trở thành ứng dụng không thể thiếu đối với người làm văn phòng, đặc biệt là các nhân viên kế toán. Và đó cũng chính là vấn đề khi doanh nghiệp của bạn sử dụng một phần mềm khác không giao tiếp với Excel. Chúng ta sẽ từng bước giải quyết các vấn đề này.
Qui tắc
Về nguyên tắc, việc đọc dữ liệu từ Excel giống như việc đọc dữ liệu từ CSDL. Bạn hãy hình dung một file Excel là một database, như thế mỗi Worksheet là một table dữ liệu.
Vậy chúng ta chỉ cần lập lại những qui tắc kết nối đến CSDL để áp dụng cho việc kết nối và đọc, ghi dữ liệu từ file Excel.
Thực hiện
Dưới đây là hai hàm làm việc với Excel. GetSheetData là hàm lấy về dữ liệu của một Worksheet trong file Excel.
- static DataTable GetSheetData(string excelFile, int sheetindex){
- string sheetname = GetExcelSheetNames(excelFile)[sheetindex];
- string srcConnString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + @";Extended Properties=""Excel 8.0;HDR=YES;""";
- string srcQuery = "Select * from [" + sheetname + "]";
- OleDbConnection srcConn = new OleDbConnection(srcConnString);
- srcConn.Open();
- OleDbCommand objCmdSelect = new OleDbCommand(srcQuery, srcConn);
- DataSet ds = new DataSet();
- OleDbDataAdapter da = new OleDbDataAdapter(objCmdSelect);
- da.Fill(ds, sheetname);
- srcConn.Close();
- return ds.Tables[0];
- }
Và sau đây là hàm lấy về tập hợp tên của những Sheets tồn tại trong file Excel.
- static 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);
- // Mở kết nối đến CSDL
- objConn.Open();
- // Lấy về dữ liệu
- 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
"http://hp-aptech.edu.vn/emoticons/emotion-55.gif" alt="Idea" /> = row["TABLE_NAME"].ToString();
- i++;
- }
- return excelSheets;
- }
- catch (Exception ex)
- {
- return null;
- }
- finally
- {
- // Clean up.
- if (objConn != null)
- {
- objConn.Close();
- objConn.Dispose();
- }
- if (dt != null)
- {
- dt.Dispose();
- }
- }
- }
Ở cả hai hàm, thì chúng ta có thể dễ dàng nhận thấy các bước để kết nối đến file Excel giống như việc kết nối đến CSDL MySQL hoặc MSSQL...
Các bước kết nối
- Khai báo ConnectionString:
Ở đây Data Source chính là đường dẫn và tên file Excel.
- Tạo kết nối và mở kết nối
- Lấy dữ liệu
Kết luận
Khi làm việc với Excel, bạn hãy nhớ nguyên tắc như đã được nêu ở trên, chắc chắn bạn sẽ làm việc một cách trơn tru. Trên đây chỉ là 2 hàm ví dụ, hi vọng các bạn sẽ áp dụng và mở rộng trong các ứng dụng của bạn.
Không có nhận xét nào:
Đăng nhận xét