xres

package
v0.0.0-...-2580d5c Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckExcelOriLegal

func CheckExcelOriLegal(ori *ExcelOri, metaLen int) error

func GetResFromExcelPtl

func GetResFromExcelPtl[t any](ptl *ExcelPtl) (map[int]t, error)

Types

type Attr

type Attr int

type Attrs

type Attrs []int

func (*Attrs) HasAttr

func (a *Attrs) HasAttr(attr Attr) bool

type ColumnType

type ColumnType int

ColumnType 列类型

const (
	CtNone         ColumnType                            = iota //无效
	CtInt                                                       //整数
	CtString                                                    //文本
	CtFloat                                                     //小数
	CtEnum                                                      //枚举
	CtBitEnum                                                   //位枚举
	CtVecDataPKey                                               //主枚举列
	CtVecDataCKey                                               //子枚举列
	CtVecDataValue                                              //数据列
	CtRealEnd                                                   //真实类型结束
	CtLogicBegin   = 100                                        //逻辑类型,仅出现在用户接口ptl处 为了避免增减枚举导致的版本不对应绕过此处,因此特殊处理一下
	CtData         = iota + CtLogicBegin - CtRealEnd - 1        // 压缩过后的逻辑数据
	CtAttrs                                                     // 属性集
)

type Data

type Data []DataCell

type DataCell

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

type ExcelColMeta

type ExcelColMeta struct {
	Type ColumnType
	Data map[string]int // 用于将填在excel中的枚举转换为int
}

ExcelColMeta 转化后的列元数据

type ExcelColMetaOri

type ExcelColMetaOri struct {
	Type string `toml:"type"`
	Data string `toml:"data"`
}

ExcelColMetaOri 从toml中读取的原始数据

func (*ExcelColMetaOri) GetColumnType

func (m *ExcelColMetaOri) GetColumnType() ColumnType

GetColumnType 从原始文本中获得列类型

func (*ExcelColMetaOri) GetData

func (m *ExcelColMetaOri) GetData() map[string]int

GetData 将原始文本中的枚举文本转换为实际的map

type ExcelColOri

type ExcelColOri struct {
	Name        string
	CellStrings []string
}

type ExcelLogic

type ExcelLogic struct {
	SheetName string
	Columns   []*ExcelLogicCol
}

func ExcelOri2Logic

func ExcelOri2Logic(ori *ExcelOri, meta *ExcelMeta) (*ExcelLogic, error)

ExcelOri2Logic 将原始的以列组织的表,进行基础的校验,并将所有的文本翻译为逻辑值

type ExcelLogicCol

type ExcelLogicCol struct {
	ExcelType ColumnType
	// contains filtered or unexported fields
}

type ExcelMeta

type ExcelMeta struct {
	ColumnMeta map[string]*ExcelColMeta
	// contains filtered or unexported fields
}

ExcelMeta Excel元数据

type ExcelMetaOri

type ExcelMetaOri struct {
	Columns map[string]*ExcelColMetaOri `toml:"columns"`
	Sheet   ExcelSheetMetaOri           `toml:"sheet"`
}

ExcelMetaOri 从toml中读取的原始excel元数据

func (*ExcelMetaOri) GetMeta

func (m *ExcelMetaOri) GetMeta() (*ExcelMeta, error)

GetMeta 将原始的元数据转换为实际的元数据

type ExcelOri

type ExcelOri struct {
	SheetName string
	Columns   []*ExcelColOri
}

func GetExcelData

func GetExcelData(addr, sheet string) (*ExcelOri, error)

type ExcelPtl

type ExcelPtl struct {
	SheetName   string
	ColumnTypes []ColumnType
	Names       []string
	Rows        []*ExcelPtlRow
}

func GetExcelFromLogic

func GetExcelFromLogic(logic *ExcelLogic, meta *ExcelMeta) (*ExcelPtl, error)

GetExcelFromLogic 将以列组织的数据重整为以行组织的数据

func (*ExcelPtl) CheckByMeta

func (e *ExcelPtl) CheckByMeta(meta *ExcelMeta) (bool, error)

CheckByMeta 使用meta中的公式检查数据是否合法

func (*ExcelPtl) CheckUsePython

func (e *ExcelPtl) CheckUsePython(pyAddr string) (bool, string)

func (*ExcelPtl) Convert

func (e *ExcelPtl) Convert(Rec []interface{}) error

Convert 将excel数据转换为任意结构体,根据Tag进行转换

func (*ExcelPtl) LoadFromFile

func (e *ExcelPtl) LoadFromFile(addr string) error

LoadFromFile 从文件中加载excel数据

func (*ExcelPtl) Save2file

func (e *ExcelPtl) Save2file(addr string) error

Save2file 将excel数据保存到文件 首先存入每一列的类型,然后存入每一行的数据

type ExcelPtlRow

type ExcelPtlRow struct {
	Data []interface{}
}

ExcelPtlRow 单行数据

type ExcelSheetMetaOri

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

type ResType

type ResType interface {
	int | string | float64 | Data
}

Jump to

Keyboard shortcuts

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