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.

Set Row Outline Level

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.

Thiết lập Cấp Độ Đường Viền Cột

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:

Bảo vệ Bảng tính

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.