table

package
v1.18.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2022 License: MIT Imports: 22 Imported by: 1

Documentation

Overview

table provides a struct to handle tabular data.

Index

Constants

View Source
const (
	FormatFloat  = "float"
	FormatInt    = "int"
	FormatString = "string"
	FormatTime   = "time"
	StyleSimple  = "border:1px solid #000;border-collapse:collapse"
)

Variables

This section is empty.

Functions

func SimpleTable

func SimpleTable(table Table) string

func SliceDedupe added in v1.17.0

func SliceDedupe(s []string) []string

func StreamSimpleTable

func StreamSimpleTable(qw422016 *qt422016.Writer, table Table)

func WriteCSVSimple

func WriteCSVSimple(cols []string, rows [][]string, filename string) error

WriteCSVSimple writes a file with cols and rows data.

func WriteSimpleTable

func WriteSimpleTable(qq422016 qtio422016.Writer, table Table)

func WriteXLSX

func WriteXLSX(path string, tables ...*Table) error

WriteXLSX writes a table as an Excel XLSX file with row formatter option.

func WriteXLSXInterface

func WriteXLSXInterface(filename string, sheetdatas ...SheetData) error

Types

type Columns added in v1.5.0

type Columns []string

Columns represents a slice of string with tabular functions.

func (Columns) CellFloat64 added in v1.14.4

func (cols Columns) CellFloat64(colName string, row []string) (float64, error)

CellFloat64 returns a single row value.

func (Columns) CellInt added in v1.14.4

func (cols Columns) CellInt(colName string, row []string) (int, error)

CellInt returns a single row value.

func (Columns) CellString added in v1.14.4

func (cols Columns) CellString(colName string, row []string) (string, error)

CellString returns a single row value.

func (Columns) CellTime added in v1.14.4

func (cols Columns) CellTime(colName, timeFormat string, row []string) (time.Time, error)

CellTime returns a single row value. If no `timeFormat` is provided `time.RFC3339` is used.

func (Columns) CellsString added in v1.14.4

func (cols Columns) CellsString(colNames []string, row []string) ([]string, error)

CellsString returns a slice of values.

func (Columns) Equal added in v1.13.0

func (cols Columns) Equal(c Columns) bool

Equal returns true if the number of elements or the element values of the Columns do not match.

func (Columns) Index added in v1.5.0

func (cols Columns) Index(colName string) int

Index returns the column index of the requested column name. A value of `-1` is returned if the coliumn name is not found.

func (Columns) MustCellString added in v1.14.4

func (cols Columns) MustCellString(colName string, row []string) string

MustCellString returns a single row value or empty string if the column name doesn't exist.

func (Columns) MustCellsString added in v1.14.4

func (cols Columns) MustCellsString(colNames []string, row []string) []string

MustCellsString returns a slice of values.

func (Columns) RowMap added in v1.5.0

func (cols Columns) RowMap(row []string, omitEmpty bool) map[string]string

RowMap converts a CSV row to a `map[string]string`.

type ParseOptions added in v1.12.0

type ParseOptions struct {
	UseComma         bool
	Comma            rune
	NoHeader         bool // HasHeader is default (false)
	FieldsPerRecord  int
	FilterColNames   []string
	FilterColIndices []uint
	TrimSpace        bool
}

ParseOptions provides a set of configuraation parameters for parsing a CSV file. If an empty or nil `ParseOptions` is provided to `ReadFile`, default options for reading files will be used.

func (*ParseOptions) CommaValue added in v1.12.0

func (opts *ParseOptions) CommaValue() rune

func (*ParseOptions) Filter added in v1.12.0

func (opts *ParseOptions) Filter(cols []string, rows [][]string, errorOutofBounds bool) ([][]string, error)

func (*ParseOptions) HasFilter added in v1.12.0

func (opts *ParseOptions) HasFilter() bool

type SheetData

type SheetData struct {
	SheetName string
	Rows      [][]interface{}
}

type Table

type Table struct {
	Name           string
	Columns        Columns
	Rows           [][]string
	FormatMap      map[int]string
	FormatFunc     func(val string, colIdx uint) (interface{}, error)
	FormatAutoLink bool
	ID             string
	Class          string
	Style          string
}

Table is useful for working on CSV data. It stores records as `[]string` with typed formatting information per-column to facilitate transformations.

func NewTable

func NewTable(name string) Table

NewTable returns a new empty `Table` struct with slices and maps set to empty (non-nil) values.

func ParseReadSeeker added in v1.16.1

func ParseReadSeeker(opts *ParseOptions, rs io.ReadSeeker) (Table, error)

ParseReadSeeker parses an `io.ReadSeeker` and returns a `Table` struct.

func ReadFile

func ReadFile(opts *ParseOptions, filenames ...string) (Table, error)

ReadFile reads one or more delimited files and returns a merged `Table` struct. An error is returned if the columns count differs between files.

func (*Table) ColumnExpand added in v1.17.0

func (tbl *Table) ColumnExpand(colIdx uint, split bool, sep, colNamePrefix, noneColName, existString, notExistString string) error

ColumnExpand adds columns to the table representing each value in the provided column.

func (*Table) ColumnSumFloat64

func (tbl *Table) ColumnSumFloat64(colIdx uint) (float64, error)

func (*Table) ColumnValues

func (tbl *Table) ColumnValues(colIdx uint, unique, sortResults bool) ([]string, error)

func (*Table) ColumnValuesForColumnName added in v1.5.0

func (tbl *Table) ColumnValuesForColumnName(colName string, dedupeValues, sortValues bool) ([]string, error)

func (*Table) ColumnValuesMinMax

func (tbl *Table) ColumnValuesMinMax(colIdx uint) (string, string, error)

func (*Table) ColumnValuesSplit added in v1.17.0

func (tbl *Table) ColumnValuesSplit(colIdx uint, split bool, sep string, unique, sortResults bool) ([]string, map[string]int, error)

func (*Table) ColumnsValuesDistinct

func (tbl *Table) ColumnsValuesDistinct(wantCols []string, stripSpace bool) (map[string]int, error)

func (*Table) FilterRecordsColumnValues

func (tbl *Table) FilterRecordsColumnValues(wantColNameValues map[string]string) ([][]string, error)

FilterRecordsColumnValues returns a set of records filtered by column names and column values.

func (*Table) FormatColumn added in v1.15.0

func (tbl *Table) FormatColumn(colIdx uint, conv func(cellVal string) (string, error)) error

FormatColumn takes a function to format all cell values.

func (*Table) FormatterFunc

func (tbl *Table) FormatterFunc() func(val string, colIdx uint) (interface{}, error)

func (*Table) IsWellFormed

func (tbl *Table) IsWellFormed() (isWellFormed bool, columnCount int, mismatchRows []int)

IsWellFormed returns true when the number of columns equals the length of each row. If columns is empty, the length of the first row is used for comparison.

func (*Table) LoadMergedRows

func (tbl *Table) LoadMergedRows(data [][]string)

LoadMergedRows is used to load data including both column names and rows from `[][]string` sources like `csv.ReadAll()`.

func (*Table) NewTableFilterColDistinctFirst

func (tbl *Table) NewTableFilterColDistinctFirst(colIdx int) *Table

func (*Table) NewTableFilterColumnValues

func (tbl *Table) NewTableFilterColumnValues(wantColNameValues map[string]string) (Table, error)

NewTableFilterColumnValues returns a Table filtered by column names and column values.

func (*Table) Pivot added in v1.15.0

func (tbl *Table) Pivot(colCount uint, haveColumns bool) (Table, error)

Pivot takes a "straight table" where the columnn names and values are in a single column and lays it out as a standard tabular data.

func (*Table) RowCellCounts added in v1.15.0

func (tbl *Table) RowCellCounts() map[int]int

RowCellCounts returns a `map[int]int` where the key is the cell count and the value is the number of rows.

func (*Table) String added in v1.15.0

func (tbl *Table) String(comma rune, useCRLF bool) (string, error)

String writes the table out to a CSV string.

func (*Table) ToDocuments added in v1.6.0

func (tbl *Table) ToDocuments() []map[string]interface{}

func (*Table) ToHTML added in v1.6.0

func (tbl *Table) ToHTML(escapeHTML bool) string

ToHTML converts `*TableData` to HTML.

func (*Table) ToSliceMSS

func (tbl *Table) ToSliceMSS() []map[string]string

func (*Table) Unmarshal

func (tbl *Table) Unmarshal(funcRow func(row []string) error) error

Unmarshal is a convenience function to provide a simple interface to unmarshal table contents into any desired output.

func (*Table) UpsertRowColumnValue

func (tbl *Table) UpsertRowColumnValue(rowIdx, colIdx uint, value string)

func (*Table) WriteCSV

func (tbl *Table) WriteCSV(path string) error

func (*Table) WriteJSON

func (tbl *Table) WriteJSON(path string, perm os.FileMode, jsonPrefix, jsonIndent string) error

func (*Table) WriteXLSX

func (tbl *Table) WriteXLSX(path, sheetname string) error

type TableSet

type TableSet struct {
	Name       string
	Columns    []string
	FormatMap  map[int]string
	FormatFunc func(val string, colIdx uint) (interface{}, error)
	TableMap   map[string]*Table
}

func NewTableSet added in v1.10.0

func NewTableSet(name string) TableSet

func (*TableSet) AddRow added in v1.6.0

func (ts *TableSet) AddRow(tableName string, row []string)

func (*TableSet) TableNames

func (ts *TableSet) TableNames() []string

func (*TableSet) TablesSorted

func (ts *TableSet) TablesSorted() []*Table

Directories

Path Synopsis
cmd
tabulator provides helper methods for rendering HTML with Tabulator (http://tabulator.info/)
tabulator provides helper methods for rendering HTML with Tabulator (http://tabulator.info/)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL