Truy cập Thư viện để làm việc với Tài liệu Excel XLSX
API Go nguồn mở hỗ trợ tạo Bảng tính Microsoft Excel XLSX, quản lý trang tính, xử lý Hàng & Cột trong Trang tính thông qua API Go.
Thư viện xlsx cung cấp một cách rất nhanh chóng và đáng tin cậy để làm việc với các tệp Microsoft Excel bằng Go. Thư viện giúp đơn giản hóa việc đọc và ghi định dạng tệp Excel XLSX. Định dạng tệp XLSX được giới thiệu vào năm 2007 và sử dụng tiêu chuẩn Open XML được Microsoft điều chỉnh vào năm 2000. Thư viện là mã nguồn mở và có sẵn theo giấy phép BSD-3-Khoản.
Thư viện xlsx mã nguồn mở đã bao gồm hỗ trợ cho một số tính năng quan trọng liên quan đến việc tạo và thao tác trên Microsoft Excel Documents như tạo tệp XlSX mới, mở tệp Excel hiện có, truy cập trang tính của bạn, thêm trang tính mới, quản lý hàng và cột bên trong trang tính, thêm ô, lấy ô từ một hàng, định dạng ô, áp dụng kiểu cho ô, hỗ trợ phạm vi được đặt tên và hơn thế nữa.
Bắt đầu với Xlsx2Go
Cách đề xuất để cài đặt xlsx là từ GitHub, Vui lòng sử dụng lệnh sau để cài đặt suôn sẻ.
Cài đặt xlsx qua GitHub
go get https://github.com/tealeg/xlsx.git
Tạo tệp XLSX MỚI qua Thư viện Go
Thư viện xlsx mã nguồn mở cung cấp cho các nhà phát triển phần mềm khả năng tạo một tệp XLSX trống mới từ đầu bằng cách sử dụng một vài lệnh Go. Các nhà phát triển có thể sử dụng hàm NewFile () mới để tạo một tệp mới. Sau khi nó được tạo, bạn có thể dễ dàng thêm nội dung mới vào sổ làm việc. Bạn có thể thêm một trang tính mới hoặc nối một trang tính hiện có một cách dễ dàng. Sau khi tạo và hoàn thành công việc, vui lòng lưu công việc của bạn, bạn nên Close () trang tính.
Tạo và chỉnh sửa file LS thông qua Go API
// Demonstrates how to create/open/save XLSX files
func Example_files() {
// Create a new XLSX file
xl := xlsx.New()
// Open the XLSX file using file name
xl, err := xlsx.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
defer xl.Close()
// Open the XLSX file using file handler
zipFile, err := os.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
xl, err = xlsx.Open(zipFile)
if err != nil {
log.Fatal(err)
}
// Update the existing XLSX file
err = xl.Save()
if err != nil {
log.Fatal(err)
}
// Save the XLSX file under different name
err = xl.SaveAs("new_file.xlsx")
if err != nil {
log.Fatal(err)
}
}
Truy cập và đọc tệp XLSX
Thư viện xlsx mã nguồn mở đã cung cấp một tập hợp các chức năng cho phép các nhà phát triển truy cập mở và đọc tệp bảng tính XLSX hiện có bên trong các ứng dụng Go của riêng họ. Bạn cũng có thể dễ dàng truy cập các trang tính của sổ làm việc chỉ bằng một vài lệnh Go. Các nhà phát triển cũng có thể dễ dàng truy cập một trang cụ thể mà họ lựa chọn.
Truy cập và đọc file Excel qua thư viện Go
func Example_access() {
xl, err := xlsx.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
defer xl.Close()
// Get sheet by 0-based index
sheet := xl.Sheet(0)
// Get cell by 0-based indexes
cell := sheet.Cell(13, 27)
fmt.Println(cell.Value())
// Get cell by reference
cell = sheet.CellByRef("N28")
fmt.Println(cell.Value())
// Get row by 0-based index
row := sheet.Row(9)
fmt.Println(strings.Join(row.Values(), ","))
// Get cell of row at 0-based col index
cell = row.Cell(0)
fmt.Println(cell.Value())
// Get col by 0-based index
col := sheet.Col(3)
fmt.Println(strings.Join(col.Values(), ","))
// Get cell of col at 0-based row index
cell = col.Cell(0)
fmt.Println(cell.Value())
// Get range by references
area := sheet.RangeByRef("D10:H13")
fmt.Println(strings.Join(area.Values(), ","))
}
Xử lý hàng và cột trong trang tính
Các ô là xương sống của một Trang tính Excel. Trang tính được tạo thành từ các ô được tổ chức theo hàng và cột. Thư viện xlsx cung cấp cho các nhà phát triển phần mềm một loạt các tính năng để xử lý các hàng và cột bên trong ứng dụng của họ bằng cách sử dụng lệnh Go. Nó hỗ trợ thêm các hàng và cột mới, lặp lại các hàng và cột, xóa các hàng và cột không mong muốn, thêm các ô mới vào một hàng, nhận giá trị từ một ô, áp dụng định dạng cho một dải ô, v.v.
Hãy chèn cột và Ross trong bảng công việc Excel thông qua thư viện Go
func Example_insert() {
xl, err := xlsx.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
defer xl.Close()
sheet := xl.Sheet(0)
fmt.Println(sheet.Dimension())
fmt.Println(strings.Join(sheet.Col(3).Values(), ","))
// Insert a new col
sheet.InsertCol(3)
fmt.Println(sheet.Dimension())
fmt.Println(strings.Join(sheet.Col(3).Values(), ","))
fmt.Println(strings.Join(sheet.Col(4).Values(), ","))
// Insert a new row
fmt.Println(strings.Join(sheet.Row(9).Values(), ","))
sheet.InsertRow(3)
fmt.Println(sheet.Dimension())
fmt.Println(strings.Join(sheet.Row(9).Values(), ","))
fmt.Println(strings.Join(sheet.Row(10).Values(), ","))
}
Áp dụng kiểu và định dạng
Thư viện xlsx Thư viện miễn phí đã cung cấp một số chức năng quan trọng cho phép các nhà phát triển phần mềm áp dụng định dạng và kiểu cho bảng tính của họ một cách dễ dàng. Kiểu cung cấp cách bố trí và trang trí các ô như phông chữ, màu sắc, căn chỉnh nội dung, cỡ chữ, tô màu, v.v. Bạn có thể dễ dàng áp dụng kiểu cho một loạt ô chỉ với một vài dòng mã. Bạn chỉ cần tạo kiểu một lần và sử dụng lại khi cần. Bạn cũng có thể áp dụng các định dạng số và ngày tháng cho các ô.
Áp dụng phong cách và định dạng cho file Excel thông qua thư viện Go
gfunc Example_formatting() {
xl, err := xlsx.Open("./test_files/example_simple.xlsx")
if err != nil {
log.Fatal(err)
}
defer xl.Close()
// Create a new format for a bold font with red color and yellow solid background
redBold := styles.New(
styles.Font.Bold,
styles.Font.Color("#ff0000"),
styles.Fill.Background("#ffff00"),
styles.Fill.Type(styles.PatternTypeSolid),
)
// Add formatting to xlsx
styleID := xl.AddStyles(redBold)
sheet := xl.Sheet(0)
// Set formatting for cell
sheet.CellByRef("N28").SetStyles(styleID)
// Set DEFAULT formatting for row. Affects cells not yet allocated in the row.
// In other words, this style applies to new cells.
sheet.Row(9).SetStyles(styleID)
// Set DEFAULT formatting for col. Affects cells not yet allocated in the col.
// In other words, this style applies to new cells.
sheet.Col(3).SetStyles(styleID)
//set formatting for all cells in range
sheet.RangeByRef("D10:H13").SetStyles(styleID)
}