Tổng quan tính năng
Tổng quan tính năng
Aspose.Cells FOSS cho API của Go tập trung vào Workbook, Worksheet, Cells, và Cell. Hướng dẫn này đi qua các khả năng khác của thư viện: tạo kiểu, xác thực dữ liệu, bảng, hình ảnh, và đọc luồng cho các tệp lớn.
Tạo kiểu ô
Nhóm các cài đặt Font, Fill, Alignment, và Border thành một Style có thể tái sử dụng, sau đó áp dụng nó cho một ô bằng Cell.SetStyle:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12
highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
Type: cells_foss.FillTypeSolid,
Color: "FF4472C4",
}
cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)Alignment kiểm soát Horizontal, Vertical, và WrapText; Border kiểm soát Top, Bottom, Left, và Right hiển thị quy tắc cộng với Color.
Xác thực dữ liệu
Worksheet.AddDataValidation gắn một quy tắc xác thực vào một phạm vi ô. Cấu trúc DataValidation mang quy tắc Type, một hoặc hai giá trị Formula, và các trường thông báo lỗi:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
dv := &cells_foss.DataValidation{
Type: cells_foss.DataValidationTypeList,
Formula1: `"Apple,Banana,Cherry,Dragonfruit"`,
AllowBlank: true,
ShowErrorMessage: true,
ErrorTitle: "Invalid Fruit",
ErrorMessage: "Please pick a fruit from the list.",
ErrorStyle: cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)Một kiểm tra phạm vi số nguyên sử dụng DataValidationTypeWhole với Formula1/Formula2 làm giới hạn dưới và trên.
Bảng
Worksheet.AddTable tạo một Table có cấu trúc trên một phạm vi, với một hàng tiêu đề tùy chọn và một kiểu bảng có tên:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"Lấy một bảng đã tồn tại theo tên bằng Worksheet.GetTable(name).
Hình ảnh
Worksheet.AddPicture chèn một hình ảnh; Picture.SetAnchor(row, col) định vị nó:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use
pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)Phát luồng Tập tin Lớn
StreamingReader đọc một worksheet từng hàng qua một callback, vì vậy một workbook có hàng ngàn dòng không bao giờ cần phải tải đầy đủ vào bộ nhớ:
path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
// process one row at a time
return nil
})
if err != nil {
fmt.Printf("Error streaming: %v\n", err)
}Mẹo và Thực hành tốt nhất
- Sử dụng
StreamingReaderthay vì tảiWorkbookđầy đủ khi tệp có thể có hàng ngàn dòng và bạn chỉ cần đọc, không cần sửa đổi, nó. - Tạo một
Stylemột lần và tái sử dụng nó cho nhiều ô thay vì tạo mới mỗi ô. Cell.SetFormulalưu trữ chuỗi công thức nguyên văn — nó được Excel hoặc LibreOffice đánh giá khi mở, không phải bởi thư viện vào thời gian lưu.- Kiểm tra giá trị trả về
errortừSave,AddDataValidation, và các cuộc gọi nhập/xuất CSV — I/O bảng tính có thể thất bại do đường dẫn không hợp lệ hoặc dữ liệu đầu vào sai định dạng.
Vấn đề thường gặp
| Issue | Cause | Sửa |
|---|---|---|
Giá trị ô không hiển thị sau Set | Tham chiếu đến sheet sai hoặc tham chiếu ô ngoài phạm vi | Xác nhận chỉ mục Worksheet và rằng tham chiếu kiểu A1 khớp với ô mong muốn |
| Công thức hiển thị dưới dạng văn bản thô thay vì tính toán | Thư viện chỉ lưu trữ chuỗi công thức; nó không tính toán công thức | Mở tệp trong Excel hoặc LibreOffice, chúng sẽ thực hiện tính toán khi mở |
| Xác thực dữ liệu không hiển thị trong Excel | Đã thêm xác thực vào một phạm vi không bao gồm ô mục tiêu | Xác nhận chuỗi phạm vi (ví dụ: "A2:A10") bao phủ các ô bạn dự định xác thực |
FAQ
Thư viện có tự đánh giá công thức không?
Không. Cell.SetFormula/GetFormula lưu trữ một chuỗi công thức mà Excel hoặc LibreOffice đánh giá khi tệp được mở.
Tôi có thể stream-write các sổ làm việc lớn, không chỉ stream-read chúng không?
StreamingReader bao gồm việc đọc luồng. Việc ghi các sổ làm việc lớn hiện đang đi qua API Workbook/Worksheet tiêu chuẩn trong bộ nhớ.
Liệu AddTable có tự động áp dụng auto-filter không?
Điều này chưa được xác nhận trong bề mặt API hiện tại — chỉ có HasHeaderRow và StyleName được tài liệu hoá là các trường Table. Hãy kiểm tra với tệp .xlsx được tạo ra nếu điều này quan trọng đối với trường hợp sử dụng của bạn.
Tóm tắt API Reference
| Lớp / Phương thức | Mô tả |
|---|---|
Workbook.NewWorkbook / Save | Tạo và lưu một workbook |
Worksheet.Cells | Truy cập bộ sưu tập ô cho một bảng tính |
Cells.Get / Set / Remove / All | Đọc, ghi, xóa và liệt kê các ô |
Cell.SetStyle / SetFormula / GetFormula | Áp dụng kiểu dáng và công thức cho một ô |
Style, Font, Fill, Alignment, Border | Soạn định dạng ô có thể tái sử dụng |
Worksheet.AddDataValidation | Gắn một quy tắc xác thực vào một phạm vi ô |
Worksheet.AddTable / GetTable | Tạo và truy xuất các phạm vi bảng có cấu trúc |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | Nhúng và đặt vị trí hình ảnh |
StreamingReader.ProcessRows | Truyền luồng một bảng tính theo từng hàng |
Workbook.ExportToCSV / ImportFromCSV | Chuyển đổi giữa XLSX và CSV |
Workbook.SetPassword / VerifyPassword | Bảo vệ và kiểm tra mật khẩu sổ làm việc |