importer

package
v0.10.7 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2023 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrSheetNotFound = errs.New("sheet not found")

Functions

This section is empty.

Types

type CSVImporter

type CSVImporter struct {
	*book.Book
}

CSVImporter recognizes pattern: "<BookName>#<SheetName>.csv"

func NewCSVImporter

func NewCSVImporter(filename string, sheetNames []string, parser book.SheetParser) (*CSVImporter, error)

type ExcelImporter

type ExcelImporter struct {
	*book.Book
}

func NewExcelImporter

func NewExcelImporter(filename string, sheetNames []string, parser book.SheetParser, mode ImporterMode, cloned bool) (*ExcelImporter, error)

type Importer

type Importer interface {
	// Filename returns the parsed filename of the original inputed filename.
	// 	- Excel: same as the inputed filename.
	// 	- CSV: recognizes pattern: "<BookName>#<SheetName>.csv", and returns Glob name "<BookName>#*.csv".
	// 	- XML: same as the inputed filename.
	Filename() string
	// Bookname returns the book name after parsing the original inputed filename.
	// 	- Excel: the base filename without file extension.
	// 	- CSV: recognizes pattern: "<BookName>#<SheetName>.csv", and returns "<BookName>".
	// 	- XML: the base filename without file extension.
	BookName() string
	// Metabook returns the metadata of the book.
	Metabook() *tableaupb.Metabook
	// GetSheets returns all sheets in order of the book.
	GetSheets() []*book.Sheet
	// GetSheet returns a Sheet of the specified sheet name.
	GetSheet(name string) *book.Sheet
}

func GetMergerImporters added in v0.10.6

func GetMergerImporters(primaryBookPath, sheetName string, bookNameGlobs []string) ([]Importer, error)

GetMergerImporters return all related importers.

  1. support Glob pattern, refer https://pkg.go.dev/path/filepath#Glob
  2. exclude self
  3. special process for CSV filename pattern: "<BookName>#<SheetName>.csv"

func GetScatterImporters added in v0.10.7

func GetScatterImporters(primaryBookPath, sheetName string, bookNameGlobs []string) ([]Importer, error)

GetScatterImporters return all related importers.

  1. support Glob pattern, refer https://pkg.go.dev/path/filepath#Glob
  2. exclude self
  3. special process for CSV filename pattern: "<BookName>#<SheetName>.csv"

func New

func New(filename string, setters ...Option) (Importer, error)

New creates a new importer.

type ImporterMode added in v0.10.6

type ImporterMode int
const (
	UnknownMode ImporterMode = 0
	Protogen    ImporterMode = 1
	Confgen     ImporterMode = 2
)

Importer mode

type Option

type Option func(*Options)

Option is the functional option type.

func Cloned added in v0.10.7

func Cloned() Option

func Mode added in v0.10.6

func Mode(m ImporterMode) Option

func Parser

func Parser(parser book.SheetParser) Option

func Sheets

func Sheets(sheets []string) Option

type Options

type Options struct {
	Sheets []string         // sheet names to import
	Parser book.SheetParser // parser to parse the worksheet
	Mode   ImporterMode     // importer mode
	Cloned bool             // this book cloned (same schema different data) from the main book
}

type XMLImporter

type XMLImporter struct {
	*book.Book
}

func NewXMLImporter

func NewXMLImporter(filename string, sheets []string, parser book.SheetParser, mode ImporterMode) (*XMLImporter, error)

TODO: options

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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