Documentation
¶
Overview ¶
xls package use to parse the 97 -2004 microsoft xls file(".xls" suffix, NOT ".xlsx" suffix )
there are some example in godoc, please follow them.
Index ¶
- Constants
- Variables
- func CompareXlsXlsx(xlsfilepathname string, xlsxfilepathname string) string
- type BlankCol
- type CellRange
- type Col
- type Coler
- type Font
- type FontInfo
- type Format
- type FormulaCol
- type FormulaStringCol
- type HyperLink
- type LabelsstCol
- type MulBlankCol
- type MulrkCol
- type NumberCol
- type RK
- type Ranger
- type RkCol
- type Row
- type SstInfo
- type TWorkSheetVisibility
- type WorkBook
- type WorkSheet
- type Xf5
- type Xf8
- type XfRk
Examples ¶
Constants ¶
const MJD_0 float64 = 2400000.5
const MJD_JD2000 float64 = 51544.5
Variables ¶
var ErrIsInt = fmt.Errorf("is int")
Functions ¶
func CompareXlsXlsx ¶ added in v0.0.2
Compares xls and xlsx files
Types ¶
type FormulaCol ¶
type FormulaCol struct {
Header struct {
Col
IndexXf uint16
Result [8]byte
Flags uint16
// contains filtered or unexported fields
}
Bts []byte
}
func (*FormulaCol) String ¶
func (c *FormulaCol) String(wb *WorkBook) []string
type FormulaStringCol ¶ added in v0.0.2
func (*FormulaStringCol) String ¶ added in v0.0.2
func (c *FormulaStringCol) String(wb *WorkBook) []string
type HyperLink ¶
type HyperLink struct {
CellRange
Description string
TextMark string
TargetFrame string
Url string
ShortedFilePath string
ExtendedFilePath string
IsUrl bool
}
hyperlink type's content
type LabelsstCol ¶
func (*LabelsstCol) String ¶
func (c *LabelsstCol) String(wb *WorkBook) []string
type MulBlankCol ¶
func (*MulBlankCol) LastCol ¶
func (c *MulBlankCol) LastCol() uint16
func (*MulBlankCol) String ¶
func (c *MulBlankCol) String(wb *WorkBook) []string
type Row ¶
type Row struct {
// contains filtered or unexported fields
}
Row the data of one row
func (*Row) Col ¶
Col Get the Nth Col from the Row, if has not, return nil. Suggest use Has function to test it.
func (*Row) ColExact ¶ added in v0.0.2
ColExact Get the Nth Col from the Row, if has not, return nil. For merged cells value is returned for first cell only
type TWorkSheetVisibility ¶ added in v0.0.2
type TWorkSheetVisibility byte
const ( WorkSheetVisible TWorkSheetVisibility = 0 WorkSheetHidden TWorkSheetVisibility = 1 WorkSheetVeryHidden TWorkSheetVisibility = 2 )
type WorkBook ¶
type WorkBook struct {
Is5ver bool
Type uint16
Codepage uint16
Xfs []st_xf_data
Fonts []Font
Formats map[uint16]*Format
Author string
// contains filtered or unexported fields
}
xls workbook type
func Open ¶
Open one xls file
Example ¶
if xlFile, err := Open("Table.xls", "utf-8"); err == nil {
fmt.Println(xlFile.Author)
}
func OpenReader ¶
func OpenReader(reader io.ReadSeeker, charset string) (wb *WorkBook, err error)
Open xls file from reader
func OpenWithCloser ¶ added in v0.0.2
Open one xls file and return the closer
func (*WorkBook) GetSheet ¶
Get one sheet by its number
Example ¶
Read the content of first two cols in each row
if xlFile, err := Open("Table.xls", "utf-8"); err == nil {
if sheet1 := xlFile.GetSheet(0); sheet1 != nil {
fmt.Print("Total Lines ", sheet1.MaxRow, sheet1.Name)
col1 := sheet1.Row(0).Col(0)
col2 := sheet1.Row(0).Col(0)
for i := 0; i <= (int(sheet1.MaxRow)); i++ {
row1 := sheet1.Row(i)
col1 = row1.Col(0)
col2 = row1.Col(1)
fmt.Print("\n", col1, ",", col2)
}
}
}
Example (Second) ¶
if f, err := Open("y692902000.xls", "utf-8"); err == nil {
var test string
sheet := f.GetSheet(0)
if sheet != nil {
test += sheet.Name + " "
test += fmt.Sprintf("%d ", sheet.MaxRow)
for i := 0; i <= (int(sheet.MaxRow)); i++ {
row := sheet.Row(i)
if row != nil {
col1 := row.Col(0)
col2 := row.Col(1)
str := col1 + "," + col2
if str == "北海道,Hokkaido" {
test += str + " "
}
if str == "鹿児島,Kagoshima" {
test += str
}
}
}
}
fmt.Println(test)
Output: y2902000 63 北海道,Hokkaido 鹿児島,Kagoshima
Example (Thrid) ¶
if f, err := Open("y2613000.xls", "utf-8"); err == nil {
var test string
sheet := f.GetSheet(0)
if sheet != nil {
test = sheet.Name + " " + fmt.Sprintf("%d ", sheet.MaxRow)
for i := 0; i <= (int(sheet.MaxRow)); i++ {
row := sheet.Row(i)
if row != nil {
for j := 0; j <= row.LastCol(); j++ {
col := row.Col(j)
if col != "" {
test += col
}
}
}
}
}
test = "'" + test[len(test)-30:] + "'"
fmt.Println(test)
Output: 'Disaster Management Agency. '
func (*WorkBook) NumSheets ¶
Get the number of all sheets, look into example
Example ¶
if xlFile, err := Open("Table.xls", "utf-8"); err == nil {
for i := 0; i < xlFile.NumSheets(); i++ {
sheet := xlFile.GetSheet(i)
fmt.Println(sheet.Name)
Output: Table
func (*WorkBook) Parse ¶
func (w *WorkBook) Parse(buf io.ReadSeeker)
func (*WorkBook) ReadAllCells ¶
helper function to read all cells from file Notice: the max value is the limit of the max capacity of lines. Warning: the helper function will need big memeory if file is large.
type WorkSheet ¶
type WorkSheet struct {
Name string
Selected bool
Visibility TWorkSheetVisibility
//NOTICE: this is the max row number of the sheet, so it should be count -1
MaxRow uint16
// contains filtered or unexported fields
}
WorkSheet in one WorkBook