...
Documentation
Documentation

# Package format

## Overview ▹

## Overview ▾

Package format provides support for parsing and evaluating spreadsheetml/Excel number formats.

Internally spreadsheets store numbers and dates values as a text representation of a floating point number (e.g. 1.2345). This number is then displayed in Excel or another spreadsheet viewer differently depending on the number fornat of the cell style applied to the cell.

As an example, the same value of 1.2345 can be displayed as: - "1" with format "0" - "1.2" with format "0.0" - "1.23" with format "0.00" - "1.235" with format "0.000" - "123%" with format "0%" - "1 23/100" with fornat "0 0/100" - "1.23E+00" with format "0.00E+00" - "29:37:41s" with format `[h]:mm:ss"s"`

## Index ▹

## Index ▾

### Package files

doc.go fmttype_string.go format.go isnumber.go lex.go lexer.go time.go

## func IsNumber ¶

    func IsNumber(data string) (isNumber bool)

## func Number ¶

    func Number(v float64, f string) string

Number is used to format a number with a format string. If the format string is empty, then General number formatting is used which attempts to mimic Excel's general formatting.

## func NumberGeneric ¶

    func NumberGeneric(v float64) string

NumberGeneric formats the number with the generic format which attemps to mimic Excel's general formatting.

## func String ¶

    func String(v string, f string) string

String returns the string formatted according to the type. In format strings this is the fourth item, where '@' is used as a placeholder for text.

## func Value ¶

    func Value(v string, f string) string

Value formats a value as a number or string depending on if it appears to be a number or string.

## type FmtType ¶

FmtType is the type of a format token.

    type FmtType byte

Format type constants.

    const (
        FmtTypeLiteral FmtType = iota
        FmtTypeDigit
        FmtTypeDigitOpt
        FmtTypeComma
        FmtTypeDecimal
        FmtTypePercent
        FmtTypeDollar
        FmtTypeDigitOptThousands
        FmtTypeUnderscore
        FmtTypeDate
        FmtTypeTime
        FmtTypeFraction
        FmtTypeText
    )

### func (FmtType) String ¶

    func (i FmtType) String() string

## type Format ¶

Format is a parsed number format.

    type Format struct {
        Whole         []Token
        Fractional    []Token
        Exponent      []Token
        IsExponential bool
        // contains filtered or unexported fields
    }

### func Parse ¶

    func Parse(s string) []Format

### func (*Format) AddToken ¶

    func (f *Format) AddToken(t FmtType, l []byte)

AddToken adds a format token to the format.

## type Lexer ¶

    type Lexer struct {
        // contains filtered or unexported fields
    }

### func (*Lexer) Lex ¶

    func (l *Lexer) Lex(r io.Reader)

## type Token ¶

Token is a format token in the Excel format string.

    type Token struct {
        Type     FmtType
        Literal  byte
        DateTime string
    }