Bảng tính
Thiết lập Tính hiển thị Cột
func (f *File) SetColVisible(sheet, col string, visible bool) error
Thiết lập tính hiển thị của cột đã cho dựa trên tên bảng tính và tên cột được chỉ định. Hàm này là an toàn đối với cùng một thời điểm. Ví dụ, để ẩn cột D
trên bảng tính có tên Sheet1
:
err := f.SetColVisible("Sheet1", "D", false)
Ẩn các cột từ D
đến F
trên bảng tính có tên Sheet1
:
err := f.SetColVisible("Sheet1", "D:F", false)
Thiết lập Chiều rộng Cột
func (f *File) SetColWidth(sheet, startCol, endCol string, width float64) error
Thiết lập chiều rộng của một hoặc nhiều cột dựa trên tên bảng tính, phạm vi cột và giá trị chiều rộng đã cho. Hàm này là an toàn đối với cùng một thời điểm. Ví dụ, để thiết lập chiều rộng của các cột A
đến H
trên bảng tính có tên Sheet1
thành 20
:
err := f.SetColWidth("Sheet1", "A", "H", 20)
Thiết lập Chiều cao dòng
func (f *File) SetRowHeight(sheet string, row int, height float64) error
Thiết lập chiều cao của một dòng dựa trên tên bảng tính, số dòng và giá trị chiều cao đã cho. Ví dụ, để thiết lập chiều cao của dòng đầu tiên trên bảng tính có tên Sheet1
thành 50
:
err := f.SetRowHeight("Sheet1", 1, 50)
Thiết lập Tính hiển thị Dòng
func (f *File) SetRowVisible(sheet string, row int, visible bool) error
Thiết lập tính hiển thị của dòng được chỉ định dựa trên tên bảng tính và số dòng. Ví dụ, để ẩn dòng thứ hai trên bảng tính có tên Sheet1
:
err := f.SetRowVisible("Sheet1", 2, false)
Lấy Tên Bảng tính
func (f *File) GetSheetName(index int) string
Lấy tên bảng tính dựa trên chỉ số bảng tính đã cho. Nếu bảng tính không tồn tại, một chuỗi rỗng sẽ được trả về.
Lấy Tính hiển thị Cột
func (f *File) GetColVisible(sheet, column string) (bool, error)
Lấy tính hiển thị của cột đã cho trong bảng tính dựa trên tên bảng tính và tên cột. Giá trị trả về true
cho thấy tính hiển thị, trong khi false
cho thấy tính ẩn. Hàm này là an toàn đối với cùng một thời điểm. Ví dụ, để lấy tính hiển thị của cột D
trên bảng tính có tên Sheet1
:
visible, err := f.GetColVisible("Sheet1", "D")
Lấy Chiều rộng Cột
func (f *File) GetColWidth(sheet, col string) (float64, error)
Lấy chiều rộng của cột đã cho trong bảng tính dựa trên tên bảng tính và tên cột. Hàm này là an toàn đối với cùng một thời điểm.
Lấy Chiều cao Dòng
func (f *File) GetRowHeight(sheet string, row int) (float64, error)
Lấy chiều cao của dòng đã cho trong bảng tính dựa trên tên bảng tính và số dòng. Ví dụ, để lấy chiều cao của dòng đầu tiên trên bảng tính có tên Sheet1
:
height, err := f.GetRowHeight("Sheet1", 1)
Lấy Tính hiển thị Dòng
func (f *File) GetRowVisible(sheet string, row int) (bool, error)
Lấy tính hiển thị của dòng đã cho trong bảng tính dựa trên tên bảng tính và số dòng. Ví dụ, để lấy tính hiển thị của dòng thứ hai trên bảng tính có tên Sheet1
:
visible, err := f.GetRowVisible("Sheet1", 2)
Lấy chỉ số của một bảng tính
func (f *File) GetSheetIndex(sheet string) (int, error)
Lấy chỉ số của bảng tính đã cho bằng tên của nó. Trả về -1
nếu bảng tính không tồn tại. Chỉ số nhận được có thể được sử dụng làm tham số khi gọi hàm SetActiveSheet()
để thiết lập bảng tính mặc định của bảng tính.
Lấy ánh xạ các bảng tính
func (f *File) GetSheetMap() map[int]string
Lấy ánh xạ tất cả các bảng tính, bảng biểu và bảng điều khiển trong workbook, được biểu diễn bằng ID và tên.
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
return
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
for index, name := range f.GetSheetMap() {
fmt.Println(index, name)
}
Lấy danh sách các bảng tính
func (f *File) GetSheetList() []string
Lấy danh sách các bảng tính, bao gồm các bảng tính, bảng biểu và bảng điều khiển theo thứ tự xuất hiện trong workbook.
Đặt tên cho một bảng tính
func (f *File) SetSheetName(source, target string) error
Đổi tên của bảng tính dựa trên tên cũ và mới cho bảng tính. Tên bảng tính có thể sử dụng tới 31 ký tự. Hàm này chỉ thay đổi tên của bảng tính và sẽ không cập nhật các công thức liên quan đến ô hoặc tên bảng tính trong các tham chiếu. Do đó, việc sử dụng hàm này để đổi tên bảng tính có thể dẫn đến lỗi công thức hoặc vấn đề tham chiếu.
Chèn cột
func (f *File) InsertCols(sheet, col string, n int) error
Chèn cột trống trước cột được chỉ định dựa trên tên bảng tính, tên cột và số cột cần chèn. Ví dụ, chèn 2 cột trống trước cột C
trong bảng tính có tên là Sheet1
:
err := f.InsertCols("Sheet1", "C", 2)
Chèn hàng
func (f *File) InsertRows(sheet string, row, n int) error
Chèn hàng trống trước hàng được chỉ định dựa trên tên bảng tính, số hàng và số hàng cần chèn. Ví dụ, chèn 2 hàng trống trước hàng thứ 3 trong bảng tính có tên Sheet1
:
err := f.InsertRows("Sheet1", 3, 2)
Thêm và sao chép hàng
func (f *File) DuplicateRow(sheet string, row int) error
Thêm một hàng trùng lặp sau số hàng được chỉ định dựa trên tên bảng tính. Ví dụ, nhân bản hàng thứ 2 của bảng tính có tên là Sheet1
đến hàng thứ 3:
err := f.DuplicateRow("Sheet1", 2)
Hãy cẩn thận khi sử dụng phương thức này, vì nó sẽ ảnh hưởng đến tất cả các thay đổi trong các công thức gốc, biểu đồ và các tham chiếu tài nguyên khác trong bảng tính. Nếu bảng tính chứa bất kỳ giá trị tham chiếu nào, mở nó bằng một ứng dụng Excel sau khi sử dụng phương thức này có thể dẫn đến lỗi tệp. excelize hiện chỉ hỗ trợ cập nhật trên một phần tham chiếu trên bảng tính.
Nhân bản hàng
func (f *File) DuplicateRowTo(sheet string, row, row2 int) error
Nhân bản hàng sau hàng được chỉ định dựa trên tên bảng và số hàng. Ví dụ, nhân bản hàng thứ hai của bảng tính có tên là Sheet1
sau hàng thứ bảy:
err := f.DuplicateRowTo("Sheet1", 2, 7)
Hãy sử dụng phương thức này cẩn thận, vì nó sẽ ảnh hưởng đến tất cả các thay đổi trong các công thức gốc, biểu đồ và các tài nguyên khác được tham chiếu trong bảng tính. Nếu bảng tính chứa bất kỳ giá trị tham chiếu nào, mở nó bằng ứng dụng Excel sau khi sử dụng phương thức này có thể dẫn đến lỗi tệp. excelize hiện chỉ hỗ trợ cập nhật trên một phần tham chiếu trên bảng tính.
Đặt cấp độ tóm tắt hàng
func (f *File) SetRowOutlineLevel(sheet string, row int, level uint8) error
Tạo nhóm dựa trên tên bảng tính, số hàng và tham số cấp độ tóm tắt. Ví dụ, tạo một nhóm cấp độ 1 tại hàng thứ hai của bảng tính có tên là Sheet1
.
err := f.SetRowOutlineLevel("Sheet1", 2, 1)
Thiết lập Cấp Độ Đường Viền Cột
func (f *File) SetColOutlineLevel(sheet, col string, level uint8) error
Tạo một nhóm dựa trên tên sheet, tên cột và tham số cấp độ đường viền đã cho. Ví dụ, tạo một nhóm cấp độ 2 trong cột D
của bảng tính có tên Sheet1
.
err := f.SetColOutlineLevel("Sheet1", "D", 2)
Lấy Cấp Độ Đường Viền Hàng
func (f *File) GetRowOutlineLevel(sheet string, row int) (uint8, error)
Lấy cấp độ đường viền dựa trên tên sheet và số hàng đã cho. Ví dụ, lấy cấp độ đường viền của hàng thứ hai trong bảng tính có tên Sheet1
.
level, err := f.GetRowOutlineLevel("Sheet1", 2)
Lấy Cấp Độ Đường Viền Cột
func (f *File) GetColOutlineLevel(sheet, col string) (uint8, error)
Lấy cấp độ đường viền dựa trên tên sheet và tên cột đã cho. Ví dụ, lấy cấp độ đường viền của cột D
trong bảng tính có tên Sheet1
.
level, err := f.GetColOutlineLevel("Sheet1", "D")
Trình Lặp Cột
func (f *File) Cols(sheet string) (*Cols, error)
Lấy trình lặp cột của bảng tính được chỉ định dựa trên tên sheet đã cho. Hàm này an toàn đối với đồng thời. Sử dụng trình lặp cột để đọc dòng dữ liệu và ô một cách liền mạch:
cols, err := f.Cols("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for cols.Next() {
col, err := cols.Rows()
if err != nil {
fmt.Println(err)
}
for _, rowCell := range col {
fmt.Print(rowCell, "\t")
}
fmt.Println()
}
Trình Lặp Cột - Lấy Giá Trị của Một Cột Đơn
func (cols *Cols) Rows(opts ...Options) ([]string, error)
Trả về các giá trị của tất cả các hàng trong cột hiện tại.
Trình Lặp Cột - Thao Tác Duyệt
func (cols *Cols) Next() bool
Trả về true
nếu có giá trị trong cột tiếp theo.
Trình Lặp Cột - Xử Lý Lỗi
func (cols *Cols) Error() error
Trả về một lỗi khi có lỗi xảy ra trong khi tìm kiếm cột tiếp theo.
Trình Lặp Hàng
func (f *File) Rows(sheet string) (*Rows, error)
Lấy trình lặp hàng của tên sheet đã cho. Hàm này an toàn đối với đồng thời. Sử dụng trình lặp hàng để lặp qua các ô để đọc dòng dữ liệu:
rows, err := f.Rows("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for rows.Next() {
row, err := rows.Columns()
if err != nil {
fmt.Println(err)
}
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
if err = rows.Close(); err != nil {
fmt.Println(err)
}
Trình Lặp Hàng - Thao Tác Với Hàng Đơn
func (rows *Rows) Columns(opts ...Options) ([]string, error)
Hàm này lặp qua bảng tính từng hàng một, trả về các giá trị của mỗi ô trong hàng hiện tại, mà không bỏ qua các hàng trống hợp lệ cuối cùng của bảng tính.
Trình Lặp Hàng - Thao Tác Duyệt
func (rows *Rows) Next() bool
Trả về true
nếu có một giá trị trong hàng tiếp theo.
Trình Lặp Hàng - Xử Lý Lỗi
func (rows *Rows) Error() error
Trả về một error
khi có lỗi xảy ra trong quá trình tìm kiếm hàng tiếp theo.
Trình Lặp Hàng - Đọc Thuộc Tính Hàng
func (rows *Rows) GetRowOpts() RowOpts
Trả về các thuộc tính của hàng hiện tại như chiều cao hàng, khả năng hiển thị và ID kiểu dáng.
Trình Lặp Hàng - Đóng Luồng Dữ Liệu
func (rows *Rows) Close() error
Đóng luồng dữ liệu và dọn dẹp bất kỳ bộ nhớ cache hệ thống nào đã được tạo ra khi mở bảng tính.
Tìm kiếm trong Bảng tính
func (f *File) SearchSheet(sheet, value string, reg ...bool) ([]string, error)
Lấy tọa độ dựa trên tên bảng tính, giá trị ô hoặc biểu thức chính quy đã cho. Chức năng này chỉ hỗ trợ các kết quả trùng khớp đầy đủ của chuỗi và số, không hỗ trợ kết quả tính toán, số được định dạng và tìm kiếm có điều kiện. Nếu kết quả tìm kiếm là một ô gộp, tọa độ của góc trên bên trái của khu vực đã gộp sẽ được trả về.
Ví dụ, tìm kiếm tọa độ của giá trị 100
trong bảng tính có tên Sheet1
:
result, err := f.SearchSheet("Sheet1", "100")
Ví dụ, tìm kiếm tọa độ các giá trị số trong phạm vi 0-9
trong bảng tính có tên Sheet1
:
result, err := f.SearchSheet("Sheet1", "[0-9]", true)
Bảo vệ Bảng tính
func (f *File) ProtectSheet(sheet string, opts *SheetProtectionOptions) error
Ngăn chặn người dùng khác vô tình hoặc cố ý thay đổi, di chuyển hoặc xóa dữ liệu trong bảng tính. Trường tùy chọn AlgorithmName
hỗ trợ chỉ định thuật toán băm XOR, MD4, MD5, SHA-1, SHA-256, SHA-384 hoặc SHA-512. Nếu thuật toán băm không được chỉ định, thuật toán XOR sẽ được sử dụng theo mặc định. Ví dụ, thiết lập bảo vệ mật khẩu cho bảng tính có tên Sheet1
nhưng cho phép lựa chọn ô bị khóa, lựa chọn ô không khóa và kịch bản chỉnh sửa:
err := f.ProtectSheet("Sheet1", &excelize.SheetProtectionOptions{
AlgorithmName: "SHA-512",
Password: "password",
SelectLockedCells: true,
SelectUnlockedCells: true,
EditScenarios: true,
})
SheetProtectionOptions định nghĩa các tùy chọn cài đặt để bảo vệ bảng tính.
type SheetProtectionOptions struct {
AlgorithmName string
AutoFilter bool
DeleteColumns bool
DeleteRows bool
EditObjects bool
EditScenarios bool
FormatCells bool
FormatColumns bool
FormatRows bool
InsertColumns bool
InsertHyperlinks bool
InsertRows bool
Password string
PivotTables bool
SelectLockedCells bool
SelectUnlockedCells bool
Sort bool
}
Gỡ bảo vệ Bảng tính
func (f *File) UnprotectSheet(sheet string, password ...string) error
Gỡ bảo vệ bảng tính theo tên bảng tính đã cho và xác định tham số mật khẩu tùy chọn thứ hai để hủy bảo vệ bảng tính bằng xác nhận mật khẩu.
Xóa Cột
func (f *File) RemoveCol(sheet, col string) error
Xóa cột đã cho theo tên bảng tính và tên cột đã cho. Ví dụ, xóa cột C
trong bảng tính có tên Sheet1
:
err := f.RemoveCol("Sheet1", "C")
Hãy sử dụng phương pháp này cẩn thận, vì điều này sẽ ảnh hưởng đến tất cả các thay đổi đối với công thức gốc, biểu đồ và các tham chiếu tài nguyên khác trong bảng tính. Nếu bảng tính chứa bất kỳ giá trị được tham chiếu nào, việc sử dụng phương pháp này có thể gây ra lỗi tập tin khi mở bằng ứng dụng Excel sau khi sử dụng. Excelize hiện chỉ hỗ trợ cập nhật một phần trên các giá trị được tham chiếu trong bảng tính.
Xóa Dòng
func (f *File) RemoveRow(sheet string, row int) error
Xóa dòng đã cho theo tên bảng tính và số dòng. Ví dụ, xóa dòng thứ 3 trong bảng tính có tên Sheet1
:
err := f.RemoveRow("Sheet1", 3)
Hãy sử dụng phương pháp này cẩn thận, vì điều này sẽ ảnh hưởng đến tất cả các thay đổi đối với công thức gốc, biểu đồ và các tham chiếu tài nguyên khác trong bảng tính. Nếu bảng tính chứa bất kỳ giá trị được tham chiếu nào, việc sử dụng phương pháp này có thể gây ra lỗi tập tin khi mở bằng ứng dụng Excel sau khi sử dụng. Excelize hiện chỉ hỗ trợ cập nhật một phần trên các giá trị được tham chiếu trong bảng tính.
Gán Giá trị theo Cột
func (f *File) SetSheetCol(sheet, cell string, slice interface{}) error
Gán giá trị theo cột theo tên bảng tính, tọa độ bắt đầu và tham chiếu kiểu slice
. Ví dụ, gán giá trị theo cột trên cột B
của bảng tính có tên Sheet1
, với ô B6
là tọa độ bắt đầu:
err := f.SetSheetCol("Sheet1", "B6", &[]interface{}{"1", nil, 2})
Gán theo Dòng
func (f *File) SetSheetRow(sheet, cell string, slice interface{}) error
Gán giá trị theo dòng dựa trên tên bảng tính, tọa độ bắt đầu và tham chiếu đến loại slice
được cung cấp. Hàm này an toàn khi sử dụng đồng thời. Ví dụ, tại dòng thứ 6 của bảng tính có tên Sheet1
, các giá trị có thể được gán theo dòng bắt đầu từ ô B6
:
err := f.SetSheetRow("Sheet1", "B6", &[]interface{}{"1", nil, 2})
Chèn Ngắt Trang
func (f *File) InsertPageBreak(sheet, cell string) error
Chèn một ngắt trang dựa trên tên bảng tính và tọa độ ô cụ thể. Ngắt trang là các đường chia tách bảng tính thành các trang riêng lẻ cho mục đích in ấn.
Xóa Ngắt Trang
func (f *File) RemovePageBreak(sheet, cell string) error
Xóa một ngắt trang dựa trên tên bảng tính và tọa độ ô cụ thể.
Thiết Lập Kích Thước Bảng Tính
func (f *File) SetSheetDimension(sheet string, rangeRef string) error
Thiết lập hoặc xóa khu vực đã sử dụng của bảng tính dựa trên tên bảng tính và tọa độ ô hoặc dãy tọa độ ô cụ thể. Các ô đã sử dụng bao gồm các ô chứa công thức, nội dung văn bản và định dạng ô, ví dụ: A1:D5
. Khi dãy tọa độ ô cụ thể được cung cấp là một chuỗi trống, nó sẽ xóa khu vực đã sử dụng của bảng tính.
Lấy Kích Thước Bảng Tính
func (f *File) GetSheetDimension(sheet string) (string, error)
Thu được kích thước đã sử dụng của bảng tính được chỉ định dựa trên tên bảng tính được cung cấp.