Tải bản đầy đủ (.pdf) (7 trang)

Thao tác với file excel ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (629.08 KB, 7 trang )



Biên tập: Nguồn: Internet


Trong các ứng dụng hiện tại, việc kết xuất dữ liệu ra file excel là rất phổ biến. Ưu điểm của việc đưa dữ liệu ra file
excel: đơn giản, người dùng có thể chỉnh sửa nội dung của file, file excel có thể được download về file client dễ
dàng.v.v.
Trong phần này sẽ giới thiệu các thao tác đọc/ghi dữ liệu lên file excel

1. Thành phần cơ bản của excel application
 Application: Chương tình Excel của Microsoft hoạt động như một dạng MDI Form, trong đó gồm Khung chứa, và các
file excel sẽ nằm bên trong. Khung chứa chính là thể hiện của Application. Khi đóng Application, toàn bộ các file
excel sẽ bị đóng.
 Workbook: Đại diện cho mỗi file excel khi được mở.
 Sheets: Tập hợp các Sheet trong file excel.
 Worksheet: Đại diện cho một sheet trong Sheets
 Cell: Đại diện cho một cell trong Worksheet
 Range: Một cách tổng quát là một mảng 2 chiều, đại diện cho một vùng trong Worksheet.


2. Các đối tượng và phương thức thao tác với file excel
Các đối tượng và phương thức thao tác với file excel nằm trong namespace:
Microsoft.Office.Interop.Excel
1. Khởi động Excel Application


Biên tập: Nguồn: Internet

Application excelApp = new ApplicationClass();


2. Mở 1 file excel nằm trên ổ cứng
private object missing_value = System.Reflection.Missing.Value;
Workbook excelWorkbook = this.excelApp.Workbooks.Open(
fileName, update_links , read_only,
format, password, write_res_password,
ignore_read_only_recommend, origin,
delimiter, editable, notify, converter,
add_to_mru, local, corrupt_load);

Trong đó:
filename:
- Tên file excel, gồm đầy đủ đường dẫn. Đây là tham số bắt buộc duy nhất, các tham số khác đều là optional.
update_links: 1
read_only:
- true/false. True để thiết lập mở file excel trong chế độ read-only
format:
- Khi mở file excel bằng 1 trình soạn thảo nào đó. Tham số sẽ xác định loại ký tự dùng để ngăn cách giữa các cell.
Giá trị Dấu ngăn cách (Delimiter)
1 Tab
2 Dấu phảy
3 Trắng (space)
4 Dấu chấm phảy
5 Nothing
6 Ký tự đặc biệt (thiết lập trong thuộc
tính Delimiter ở phần dưới)

password:
- Password dùng để mởi file. Nếu không nhập password, sẽ không mở được file
write_res_password:
- Password dùng để modify file. Nếu không nhập password, sẽ mở file ở chế độ read-only

ignore_read_only_recommend:
- true/false. Thiết lập là True, excel sẽ không hiển thị cảnh báo “Read-Only” khi save 1 file đang ở trong chế độ read-
only
origin:
- missing_value. Không sử dụng
delimiter:
- Khi tham số format = 6, delimiter sẽ xác định ký tự phân cách, vd: chr(9) – tabs
editable:
- mising_value. Không sử dụng, mặc định là false


Biên tập: Nguồn: Internet

notify:
- true/false. Nếu file excel không thể mở ở chế độ write-mode vì một lý do nào đó. Thiết lập thuộc tính notify là true,
Excel sẽ thông báo là file sẽ được mở ở chế độ read-only mode.
converter:
- missing_value. Khi file excel ở những định dạng hoặc version khác nhau, trình Converter sẽ có nhiệm vụ mở file này.
Excel sẽ duyệt qua tất cả các trình Converter cho đến khi nào phù hợp.
add_to_mru:
- true/false. Excel sẽ add workbook vào danh sách “recently used files”. Mặc định false.
local:
- true/false. Mặc định là false
corrupt_load:
- Liên quan đến việc load dữ liệu vào file. Có 3 chế độ: xlNormalLoad, xlRepairFile, và xlExtractData. Mặc định là
xlNormalLoad, chế độ này có các trạng thái sau:
+Normal: mở file bình thường
+Safe load or data recovery: trong trường hợp dữ liệu chưa kịp save khi mất điện, ở lần mở file sau đó, hệ thống sẽ
mở ở trạng thái khôi phục dữ liệu
3. Tạo một file mới

Workbook excelWorkbook = this.excelApp.Workbooks.Add(missing_value);

4. Lưu nội dung file excel
Để lưu nội dung file excel, ta sử dụng 2 method:
- Save() : Lưu thông tin file đã tồn tại
this.excelWorkbook.Save();

- SaveAs(): Lưu thông tin file mới
this.excelWorkbook.SaveAs(
fileName, format, password, write_res_password,
read_only_recommend, create_backup, access_mode,
conflict_resolution, add_to_mru, text_code_page,
text_visual_layout, local);

Trong đó:
filename:
- Tên file để lưu. Trường hợp không chỉ định đường dẫn, sẽ lưu trên thư mục hiện tại
format:
- Định dạng dùng khi save file ví dụ: XlFileFormat.xlXMLSpreadsheet. Thường không sử dụng thuộc tính này
password:
- Password dùng để mởi file. (giống với open file)
write_res_password:
- Password dùng để modify file. (giống với open file)
read_only_recommend:
- true/false. True để thiết lập thuộc tính file là Read-Only
create_backup:
- true/false. Thiết lập true để tạo file backup
access_mode:
- Kiểu truy cập file. Mặc định XlSaveAsAccessMode.xlNoChange
conflict_resolution:

Cách giải quyết conflict khi có nhiều user cập nhật vào 1 file.
(Enum: XlSaveConflictResolution)


Biên tập: Nguồn: Internet

+ xlLocalSessionChanges: Access những thay đổi user local
+ xlOtherSessionChanges: Reject tất cả những thay đổi user local
+ xlUserResolution: Hiển thị hộp thoại cho người dùng lựa chọn
add_to_mru:
- true/false. Excel sẽ add workbook vào “recently used files”. Mặc định false.
text_code_page :
- missing_value. Không sử dụng
text_visual_layout:
-missing_value. Không sử dụng
local:
- true/false
5. Đóng file excel
this.excelWorkbook.Close(save_changes, fileName, route_workbook);

Trong đó:
Save_changes:
- true/false. Xác định có lưu file trước khi đóng hay không
filename:
- Tên file
route_workbook:
- true/false
6. Đóng ứng dụng excel
this.excelApp.Quit();


7. Lấy về tất cả các sheet trong excel
Sheets excelSheets = excelWorkbook.Worksheets;

8. Lấy về Worksheet (theo tên, theo index, active)
// Theo tên:
Worksheet excelWorksheet =
(Worksheet)this.excelSheets.get_Item(sheetName);
// Theo index (thứ tự sheet):
Worksheet excelWorksheet =
(Worksheet)this.excelSheets.get_Item(sheetIndex);
// Theo Active (sheet đang được thao tác):
Worksheet excelWorksheet = (Worksheet)this.excelWorkbook.ActiveSheet;

9. Lấy giá trị trong Range
Range là một vùng trong excel, Range có thể được xác định theo 2 cách:
C1:
Range excelRange = this.excelWorksheet.get_Range(startCell, endCell);
// startCell: string. Chỉ định cell đầu tiên trong range, vd: B3
// endCell: string. Chỉ định cell cuối cùng trong range, vd: E9


Biên tập: Nguồn: Internet


C2:
Range excelRange = this.excelWorksheet.get_Range(range, Type.Missing);
// range: string. Được biểu diễn theo dạng gộp, vd B3:E9

Ví dụ duyệt các giá trị trong Range.
Range excelRange = this.excelWorksheet.get_Range(range, Type.Missing);

System.Array cellArray = excelRange.Value2;
for (int i = 1; i <= cellArray.GetUpperBound(0); i++)
{
for (int j = 1; j <= cellArray.GetUpperBound(1); j++)
{
string value = cellArray.GetValue(i, j) != null ?
cellArray.GetValue(i, j).ToString() : string.Empty;
Console.Write(value);
Console.Write(" ");
}
Console.WriteLine();
}

10. Lấy giá trị trong Cell
Một cách tổng quát, Cell là một trường hợp đặc biệt của Range (chỉ có 1 hàng, 1 cột)
Range excelRange =
(Range)this.excelWorksheet.Cells[rowIndex, columnIndex];
string str = (string)excelRange.Text;

11. Ghi giá trị vào Range
Range excelRange = this.excelWorksheet.get_Range(range, Type.Missing);
excelRange.Value2 = value;

Trong đó:
range: string. Xác định kích thước của Range
value: object. Có thể là một mảng 1 chiều, mảng 2 chiều, string, int, DateTime
12. Ghi giá trị vào Cell
Cũng tương tự như ghi dữ liệu vào Range.
Range excelRange =



Biên tập: Nguồn: Internet

(Range)this.excelWorksheet.Cells[rowIndex, columnIndex];
excelRange.Value2 = value;

Trong đó, value cũng có kiểu object.
13. Chèn thêm dòng
Range excelRange =
excelWorksheet.get_Range(range, Type.Missing).EntireRow;
excelRange.Insert(XlInsertShiftDirection.xlShiftDown, Type.Missing);

14. Xóa dòng
Range excelRange =
excelWorksheet.get_Range(range, Type.Missing).EntireRow;
excelRange.Delete(XlDeleteShiftDirection.xlShiftUp);

15. Chèn thêm cột
Range excelRange =
excelWorksheet.get_Range(range, Type.Missing).EntireColumn;
excelRange.Insert(XlInsertShiftDirection.xlShiftToRight, Type.Missing);

16. Xóa cột
Range excelRange =
excelWorksheet.get_Range(range, Type.Missing).EntireColumn;
excelRange.Delete(XlDeleteShiftDirection.xlShiftToLeft);

17. Thiết lập font
Range excelRange = this.excelWorksheet.get_Range(range, Type.Missing);
excelRange.Font.Bold = true;

excelRange.Font.Italic = true;
excelRange.Font.Name = “Arial”;
excelRange.Font.Size = 10;
excelRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;
excelRange.VerticalAlignment = XlVAlign.xlVAlignTop;

18. Thiết lập định dạng ngày tháng
Range excelRange = this.excelWorksheet.get_Range(range, Type.Missing);


Biên tập: Nguồn: Internet

excelRange.NumberFormat = “MM/dd/yyyy”;

19. Thiết lập border
excelRange.Borders[XlBordersIndex.xlEdgeTop].LineStyle =
XlLineStyle.xlContinuous;
excelRange.Borders[XlBordersIndex.xlEdgeTop].Color =
Color.Blue.ToArgb();
excelRange.Borders[XlBordersIndex.xlEdgeTop].Weight = 2;

Trong đó:
XlBordersIndex: enum. Chỉ định cạnh: Top, Bottom, Left, Right
XlLineStyle: enum. Chỉ định các dạng đường: Continuous, Double, Dash
Color: int. Chỉ định mầu
Weight: int. Chỉ định độ rộng của đường, có giá trị từ 1 – 4.

Source code for download.
ExcelAccessor.rar

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×