xormplus 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
..
AUTHORS.txt b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
CODE_OF_CONDUCT.md e56fa43008 Get latest revision "github.com/tealeg/xlsx" %!s(int64=8) %!d(string=hai) anos
LICENSE e56fa43008 Get latest revision "github.com/tealeg/xlsx" %!s(int64=8) %!d(string=hai) anos
README.org 14a3d243ad Get latest revision "github.com/tealeg/xlsx" %!s(int64=8) %!d(string=hai) anos
cell.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
col.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
date.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
doc.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
file.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
format_code.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
hsl.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
lib.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
read.go e56fa43008 Get latest revision "github.com/tealeg/xlsx" %!s(int64=8) %!d(string=hai) anos
reftable.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
row.go e56fa43008 Get latest revision "github.com/tealeg/xlsx" %!s(int64=8) %!d(string=hai) anos
sheet.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
stream_file.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
stream_file_builder.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
style.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
templates.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
theme.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
write.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
xmlContentTypes.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
xmlSharedStrings.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
xmlStyle.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
xmlTheme.go b896d33714 add vendor %!s(int64=9) %!d(string=hai) anos
xmlWorkbook.go 955c21fb34 Get latest revision "github.com/tealeg/xlsx" %!s(int64=7) %!d(string=hai) anos
xmlWorksheet.go e56fa43008 Get latest revision "github.com/tealeg/xlsx" %!s(int64=8) %!d(string=hai) anos

README.org

XLSX

https://img.shields.io/travis/tealeg/xlsx/master.svg?style=flat-square

Introduction

xlsx is a library to simplify reading and writing the XML format used by recent version of Microsoft Excel in Go programs.

The support for writing XLSX files is currently extremely minimal. It will expand slowly, but in the meantime patches are welcome!

Full API docs

The full API docs can be viewed using go's built in documentation tool, or online at godoc.org.

Basic Usage

Reading XLSX files

Here is a minimal example usage that will dump all cell data in a given XLSX file. A more complete example of this kind of functionality is contained in the XLSX2CSV program:


package main

import (
    "fmt"
    "github.com/tealeg/xlsx"
)

func main() {
    excelFileName := "/home/tealeg/foo.xlsx"
    xlFile, err := xlsx.OpenFile(excelFileName)
    if err != nil {
        ...
    }
    for _, sheet := range xlFile.Sheets {
        for _, row := range sheet.Rows {
            for _, cell := range row.Cells {
                text := cell.String()
                fmt.Printf("%s\n", text)
            }
        }
    }
}

Some additional information is available from the cell (for example, style information). For more details see the godoc output for this package.

Writing XLSX files

The following constitutes the bare minimum required to write an XLSX document.


package main

import (
    "fmt"
    "github.com/tealeg/xlsx"
)

func main() {
    var file *xlsx.File
    var sheet *xlsx.Sheet
    var row *xlsx.Row
    var cell *xlsx.Cell
    var err error

    file = xlsx.NewFile()
    sheet, err = file.AddSheet("Sheet1")
    if err != nil {
        fmt.Printf(err.Error())
    }
    row = sheet.AddRow()
    cell = row.AddCell()
    cell.Value = "I am a cell!"
    err = file.Save("MyXLSXFile.xlsx")
    if err != nil {
        fmt.Printf(err.Error())
    }
}

Contributing

We're extremely happy to review pull requests. Please be patient, maintaining XLSX doesn't pay anyone's salary (to my knowledge).

If you'd like to propose a change please ensure the following:

Eat a peach - Geoff