Gå till biblioteket för att arbeta med Excel XLSX-dokument

Open Source Go API som stöder Microsoft Excel XLSX Spreadsheet-generering, hantera kalkylblad, hantera rader och kolumner i kalkylblad via Go API.

xlsx-biblioteket ger ett mycket snabbt och tillförlitligt sätt att arbeta med Microsoft Excel-filer med hjälp av Go. Biblioteket hjälper till att förenkla läsning och skrivning av Excel XLSX-filformat. XLSX-filformatet introducerades 2007 och använder Open XML-standarden anpassad av Microsoft redan 2000. Biblioteket är öppen källkod och tillgängligt under licensen BSD-3-klausul.

Xlsx-biblioteket med öppen källkod har inkluderat stöd för flera viktiga funktioner relaterade till skapande och manipulering av Microsoft Excel-dokument, som att skapa en ny XlSX-fil, öppna befintliga Excel-filer, komma åt dina kalkylblad, lägga till nya kalkylblad, hantera rader och kolumner i ett kalkylblad, lägga till celler, hämta celler från en rad, formatera celler, tillämpa stilar på celler, stöd för namngivna intervall och mycket mer.

Previous Next

Komma igång med Xlsx2Go

Det rekommenderade sättet att installera xlsx är från GitHub, använd följande kommando för smidig installation.

Installera xlsx via GitHub

go get https://github.com/tealeg/xlsx.git

Skapa NYA XLSX-filer via Go Library

Xlsx-biblioteket med öppen källkod ger mjukvaruutvecklare möjlighet att skapa en ny tom XLSX-fil från början med ett par Go-kommandon. Utvecklarna kan använda den nya NewFile()-funktionen för att generera en ny fil. När den väl har skapats kan du enkelt lägga till nytt innehåll i arbetsboken. Du kan enkelt lägga till ett nytt ark eller lägga till ett befintligt ark. När du har skapat och arbetet är klart, spara ditt arbete, det rekommenderas Close() the sheet.

Skapa och redigera Excel LS-fil via 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)
	}
}

Få åtkomst till och läs XLSX-filer

XLSX-biblioteket med öppen källkod har tillhandahållit en uppsättning funktioner som gör det möjligt för utvecklare att öppna och läsa en befintlig XLSX-kalkylarksfil i sina egna Go-applikationer. Du kan också enkelt komma åt ark i en arbetsbok med bara ett par Go-kommandon. Utvecklare kan också enkelt komma åt ett visst ark efter eget val.

Access och läs Excel File via Go Library

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(), ","))
}

Hantera rader och kolumner i kalkylblad

Celler är ryggraden i ett Excel-kalkylblad. Ett kalkylblad består av celler organiserade i rader och kolumner. xlsx-biblioteket ger mjukvaruutvecklare ett brett utbud av funktioner för att hantera rader och kolumner i sina appar med hjälp av Go-kommandon. Det stöder att lägga till nya rader och kolumner, iterera rader och kolumner, ta bort oönskade rader och kolumner, lägga till nya celler i en rad, hämta värde från en cell, tillämpa formatering på ett cellintervall och många fler.

Infoga kolumner och ross i ett Excel Worksheet via Go Library

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(), ","))
}

Använd stilar och formatering

Det fria biblioteket xlsx-biblioteket har tillhandahållit flera viktiga funktioner som gör det möjligt för mjukvaruutvecklare att använda formatering och stilar på sina kalkylblad med lätthet. Stilar ger layout och dekoration av celler som teckensnitt, färg, innehållsjustering, teckenstorlek, fyllning, etc. Du kan enkelt tillämpa stilen på ett antal celler med bara ett par rader kod. Du behöver bara skapa en stil en gång och återanvända den när det behövs. Du kan också använda nummer- och datumformat för celler.

Applicera stilar och formatering till Excel-fil via Go-biblioteket

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)
}
 Svenska