Làm việc với Quản lý Bảng tính
Làm việc với Quản lý Bảng tính
Quản lý bảng tính bao phủ bề mặt đối tượng hàng ngày của crate: các bảng tính, tập hợp ô, giá trị có kiểu, công thức, kiểu dáng, và các tính năng cấu trúc làm cho một workbook có thể sử dụng được. Điểm vào luôn là một Workbook.
Worksheets
Các sheet được quản lý thông qua các bộ sưu tập bảng tính của workbook — truy cập đọc qua get_worksheets, thay đổi qua get_worksheets_mut. Các sheet được định vị bằng chỉ mục (get(0)) hoặc tên (get_by_name), đổi tên bằng set_name, và thêm bằng add_worksheet:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}Truy cập Ô và Giá trị Có Kiểu
Các ô được định vị theo kiểu A1 hoặc dạng số. get_by_index(row, column) phù hợp với các bố cục được tạo:
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
}Khi đọc lại, display_string_value trả về văn bản hiển thị và value_type báo cáo kiểu đã lưu.
Công thức với kết quả được lưu trong bộ nhớ đệm
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;Giá trị được lưu trong bộ nhớ đệm là những gì Excel hiển thị trước khi tính lại lần đầu — cung cấp nó để người dùng tệp nhìn thấy kết quả đúng ngay lập tức.
Styling
CellStyle tổng hợp Font, Fill, và Borders; StyleFlag kiểm soát các khía cạnh định dạng mà một cập nhật áp dụng, vì vậy định dạng hiện có được giữ nguyên ở những nơi bạn không ghi đè. NumberFormat quyết định cách các giá trị được hiển thị.
Cài đặt trang và Điều hướng
PageSetup quản lý bố cục in: PaperSizeType, PageOrientationType, và lề. FreezePane giữ các hàng tiêu đề luôn hiển thị khi cuộn, và việc hiển thị hàng và cột sử dụng VisibilityType.
Cấu trúc: Bảng, Tên, Bình luận, Siêu liên kết
ListObjectchuyển một phạm vi thành bảng có cấu trúc vớiTableStyleTypevà các hàng tổngTotalsCalculation.DefinedNamevàDefinedNameCollectionquản lý các phạm vi có tên.Comment/CommentCollectionvàHyperlink/HyperlinkCollectionbao phủ chú thích và điều hướng.
Mẹo và Thực hành Tốt nhất
- Giữ các tham chiếu có thể thay đổi (
get_worksheets_mut,get_cells_mut) bên trong một khối phạm vi; lưu sổ làm việc sau khi khối đóng lại. - Sử dụng
get_by_indexcho các vòng lặp và bố cục được tạo; tên A1 cho các vị trí cố định. - Áp dụng kiểu với một
StyleFlagđể định dạng không liên quan không bị thay đổi. - Đặt tên các phạm vi quan trọng bằng
DefinedNamethay vì mã hóa địa chỉ cứng.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Khắc phục |
|---|---|---|
| Lỗi mượn khi lưu sổ làm việc | Việc mượn worksheet có thể thay đổi vẫn còn tồn tại | Đóng khối phạm vi trước khi gọi save |
| Công thức hiển thị 0 trong Excel | Không có giá trị bộ nhớ đệm được cung cấp | Sử dụng put_formula_with_cached_value với kết quả mong đợi |
| Không tìm thấy sheet | Tên không khớp | Địa chỉ theo chỉ mục hoặc kiểm tra chính tả set_name |
FAQ
Làm sao để thêm một worksheet thứ hai?
Gọi add_worksheet trên workbook, sau đó lấy nó qua bộ sưu tập worksheet bằng chỉ mục hoặc tên.
Tôi có thể đọc và ghi trong cùng một lượt không?
Có — tải bằng Workbook::load_xlsx, thay đổi qua get_worksheets_mut, và save tới cùng một đường dẫn hoặc một đường dẫn mới.
Các setter có kiểu có chuyển đổi giá trị không?
Không có chuyển đổi nào được áp dụng: mỗi setter put_value_* lưu trữ kiểu gốc của nó; display_string_value hiển thị văn bản hiển thị khi đọc.
API Reference Tóm tắt
| Lớp/Phương thức | Mô tả |
|---|---|
Workbook.add_worksheet | Thêm một sheet vào workbook |
Worksheet.set_name | Đổi tên một sheet |
Worksheet.get_cells_mut | Bộ sưu tập ô có thể thay đổi |
CellMut.put_value_string | Bộ đặt chuỗi có kiểu |
CellMut.put_formula_with_cached_value | Công thức cộng kết quả đã được lưu trong bộ đệm |
CellStyle | Định dạng phông chữ, nền và viền |
StyleFlag | Chọn các khía cạnh kiểu sẽ áp dụng |
PageSetup | Bố cục in và trang |
ListObject | Bảng có cấu trúc |