Categorygithub.com/360EntSecGroup-Skylar/excelize
modulepackage
1.4.1
Repository: https://github.com/360entsecgroup-skylar/excelize.git
Documentation: pkg.go.dev

# README

Excelize logo

Build Status Code Coverage Go Report Card GoDoc Licenses Donate

Excelize

Introduction

Excelize is a library written in pure Go and providing a set of functions that allow you to write to and read from XLSX files. Support reads and writes XLSX file generated by Microsoft Excel™ 2007 and later. Support save file without losing original charts of XLSX. This library needs Go version 1.8 or later. The full API docs can be seen using go's built-in documentation tool, or online at godoc.org and docs reference.

Basic Usage

Installation

go get github.com/360EntSecGroup-Skylar/excelize

Create XLSX file

Here is a minimal example usage that will create XLSX file.

package main

import (
    "fmt"

    "github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
    xlsx := excelize.NewFile()
    // Create a new sheet.
    index := xlsx.NewSheet("Sheet2")
    // Set value of a cell.
    xlsx.SetCellValue("Sheet2", "A2", "Hello world.")
    xlsx.SetCellValue("Sheet1", "B2", 100)
    // Set active sheet of the workbook.
    xlsx.SetActiveSheet(index)
    // Save xlsx file by the given path.
    err := xlsx.SaveAs("./Book1.xlsx")
    if err != nil {
        fmt.Println(err)
    }
}

Reading XLSX file

The following constitutes the bare to read a XLSX document.

package main

import (
    "fmt"

    "github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
    xlsx, err := excelize.OpenFile("./Book1.xlsx")
    if err != nil {
        fmt.Println(err)
        return
    }
    // Get value from cell by given worksheet name and axis.
    cell := xlsx.GetCellValue("Sheet1", "B2")
    fmt.Println(cell)
    // Get all the rows in the Sheet1.
    rows := xlsx.GetRows("Sheet1")
    for _, row := range rows {
        for _, colCell := range row {
            fmt.Print(colCell, "\t")
        }
        fmt.Println()
    }
}

Add chart to XLSX file

With Excelize chart generation and management is as easy as a few lines of code. You can build charts based off data in your worksheet or generate charts without any data in your worksheet at all.

Excelize

package main

import (
    "fmt"

    "github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
    categories := map[string]string{"A2": "Small", "A3": "Normal", "A4": "Large", "B1": "Apple", "C1": "Orange", "D1": "Pear"}
    values := map[string]int{"B2": 2, "C2": 3, "D2": 3, "B3": 5, "C3": 2, "D3": 4, "B4": 6, "C4": 7, "D4": 8}
    xlsx := excelize.NewFile()
    for k, v := range categories {
        xlsx.SetCellValue("Sheet1", k, v)
    }
    for k, v := range values {
        xlsx.SetCellValue("Sheet1", k, v)
    }
    xlsx.AddChart("Sheet1", "E1", `{"type":"col3DClustered","series":[{"name":"Sheet1!$A$2","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$2:$D$2"},{"name":"Sheet1!$A$3","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$3:$D$3"},{"name":"Sheet1!$A$4","categories":"Sheet1!$B$1:$D$1","values":"Sheet1!$B$4:$D$4"}],"title":{"name":"Fruit 3D Clustered Column Chart"}}`)
    // Save xlsx file by the given path.
    err := xlsx.SaveAs("./Book1.xlsx")
    if err != nil {
        fmt.Println(err)
    }
}

Add picture to XLSX file

package main

import (
    "fmt"
    _ "image/gif"
    _ "image/jpeg"
    _ "image/png"

    "github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
    xlsx, err := excelize.OpenFile("./Book1.xlsx")
    if err != nil {
        fmt.Println(err)
        return
    }
    // Insert a picture.
    err = xlsx.AddPicture("Sheet1", "A2", "./image1.png", "")
    if err != nil {
        fmt.Println(err)
    }
    // Insert a picture to worksheet with scaling.
    err = xlsx.AddPicture("Sheet1", "D2", "./image2.jpg", `{"x_scale": 0.5, "y_scale": 0.5}`)
    if err != nil {
        fmt.Println(err)
    }
    // Insert a picture offset in the cell with printing support.
    err = xlsx.AddPicture("Sheet1", "H2", "./image3.gif", `{"x_offset": 15, "y_offset": 10, "print_obj": true, "lock_aspect_ratio": false, "locked": false}`)
    if err != nil {
        fmt.Println(err)
    }
    // Save the xlsx file with the origin path.
    err = xlsx.Save()
    if err != nil {
        fmt.Println(err)
    }
}

Contributing

Contributions are welcome! Open a pull request to fix a bug, or open an issue to discuss a new feature or change. XML is compliant with part 1 of the 5th edition of the ECMA-376 Standard for Office Open XML.

Credits

Some struct of XML originally by tealeg/xlsx.

Licenses

This program is under the terms of the BSD 3-Clause License. See https://opensource.org/licenses/BSD-3-Clause.

FOSSA Status

# Functions

HSLToRGB converts an HSL triple to a RGB triple.
NewDataValidation return data validation struct.
NewFile provides a function to create new file by default template.
OpenFile take the name of an XLSX file and returns a populated XLSX file struct for it.
OpenReader take an io.Reader and return a populated XLSX file.
ReadZipReader can be used to read an XLSX in memory without touching the filesystem.
RGBToHSL converts an RGB triple to a HSL triple.
ThemeColor applied the color with tint value.
TitleToNumber provides a function to convert Excel sheet column title to int (this function doesn't do value check currently).
ToAlphaString provides a function to convert integer to Excel sheet column title.

# Constants

This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
Data validation error styles.
Data validation error styles.
Data validation error styles.
Data validation operators.
Data validation operators.
Data validation operators.
Data validation operators.
Data validation operators.
Data validation operators.
Data validation operators.
Data validation operators.
Data validation types.
Data validation types.
Data validation types.
Data validation types.
Data validation types.
DataValidationTypeWhole Integer.
This section defines the currently supported chart types.
Define the default cell size and EMU unit of measurement.
This section defines the currently supported chart types.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
This section defines the currently supported chart types.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
STCellFormulaTypeArray defined the formula is an array formula.
STCellFormulaTypeDataTable defined the formula is a data table formula.
STCellFormulaTypeNormal defined the formula is a regular cell formula.
STCellFormulaTypeShared defined the formula is part of a shared formula.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
Source relationship and namespace.
XMLHeader define an XML declaration can also contain a standalone declaration.

# Variables

HSLModel converts any color.Color to a HSL color.
XMLHeaderByte define an XML declaration can also contain a standalone declaration.

# Structs

Comment directly maps the comment information.
DataValidation directly maps the a single item of data validation defined on a range of the worksheet.
ErrSheetNotExist defines an error of sheet is not exist.
File define a populated XLSX file struct.
FormatSheetProtection directly maps the settings of worksheet protection.
HSL represents a cylindrical coordinate of points in an RGB color model.
Rows defines an iterator to a sheet.

# Interfaces

SheetPrOption is an option of a view of a worksheet.
SheetPrOptionPtr is a writable SheetPrOption.
SheetViewOption is an option of a view of a worksheet.
SheetViewOptionPtr is a writable SheetViewOption.

# Type aliases

No description provided by the author
No description provided by the author
DataValidationErrorStyle defined the style of data validation error alert.
DataValidationOperator operator enum.
DataValidationType defined the type of data validation.
No description provided by the author
No description provided by the author
No description provided by the author
MergeCell define a merged cell data.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author