Přejít do knihovny pro práci s dokumenty Excel XLSX
Open Source Go API, které podporuje generování tabulek Microsoft Excel XLSX, správu listů a zpracování řádků a sloupců v pracovních listech prostřednictvím rozhraní Go API.
Knihovna xlsx poskytuje velmi rychlý a spolehlivý způsob práce se soubory Microsoft Excel pomocí Go. Knihovna pomáhá zjednodušit čtení a zápis ve formátu Excel XLSX. Souborový formát XLSX byl představen v roce 2007 a používá standard Open XML upravený společností Microsoft již v roce 2000. Knihovna je open source a je dostupná pod licencí BSD-3-Clause.
Knihovna xlsx s otevřeným zdrojovým kódem obsahuje podporu pro několik důležitých funkcí souvisejících s vytvářením a manipulací s dokumenty Microsoft Excel, jako je vytváření nového souboru XlSX, otevírání existujících souborů aplikace Excel, přístup k vašim listům, přidávání nových listů, správa řádků a sloupců uvnitř listu, přidávání buňky, získávání buňky z řádku, formátování buněk, použití stylů na buňky, podpora pojmenovaných rozsahů a mnoho dalšího.
Začínáme s Xlsx2Go
Doporučený způsob instalace xlsx je z GitHubu, pro bezproblémovou instalaci použijte následující příkaz.
Nainstalujte xlsx přes GitHub
go get https://github.com/tealeg/xlsx.git
Vytváření NOVÝCH souborů XLSX prostřednictvím knihovny Go
Open source knihovna xlsx poskytuje vývojářům softwaru možnost vytvořit nový prázdný soubor XLSX od začátku pomocí několika příkazů Go. Vývojáři mohou použít novou funkci NewFile() ke generování nového souboru. Jakmile je vytvořen, můžete do sešitu snadno přidat nový obsah. Můžete snadno přidat nový list nebo připojit existující list. Po vytvoření a dokončení práce si práci uložte, doporučuje se Zavřít()list.
Vytvořit a upravit soubor Excel LS přes 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)
}
}
Přístup a čtení souborů XLSX
Knihovna xlsx s otevřeným zdrojovým kódem poskytuje sadu funkcí, které vývojářům umožňují otevřít a číst existující tabulkový soubor XLSX v jejich vlastních aplikacích Go. Můžete také snadno přistupovat k listům sešitu pomocí několika příkazů Go. Vývojáři mohou také snadno přistupovat ke konkrétnímu listu podle svého výběru.
Přístup a Přečtěte si soubor Excel prostřednictvím knihovny 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(), ","))
}
Práce s řádky a sloupci v pracovních listech
Buňky jsou páteří listu aplikace Excel. List se skládá z buněk uspořádaných do řádků a sloupců. Knihovna xlsx poskytuje vývojářům softwaru širokou škálu funkcí pro práci s řádky a sloupci v aplikacích pomocí příkazů Go. Podporuje přidávání nových řádků a sloupců, iteraci řádků a sloupců, mazání nechtěných řádků a sloupců, přidávání nových buněk do řádku, získávání hodnoty z buňky, použití formátování na rozsah buněk a mnoho dalších.
Vložit sloupce & Ross v Excel Pracovní list přes Go knihovna
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(), ","))
}
Použít styly a formátování
Knihovna Free library xlsx poskytuje několik důležitých funkcí, které umožňují vývojářům softwaru snadno aplikovat formátování a styly na jejich tabulky. Styly poskytují rozvržení a dekoraci buněk, jako je písmo, barva, zarovnání obsahu, velikost písma, výplň atd. Styl můžete snadno použít na řadu buněk pomocí pouhých několika řádků kódu. Stačí vytvořit styl jednou a v případě potřeby jej znovu použít. Pro buňky můžete také použít formát čísla a data.
Použijte styly a formátování do souboru Excel prostřednictvím knihovny 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)
}