12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package utils
-
- import (
- "errors"
- "io"
- "reflect"
-
- "github.com/astaxie/beego"
-
- "github.com/tealeg/xlsx"
- )
-
- // TinyXLSXEngine 简版 xlsx 处理器
- type TinyXLSXEngine struct {
- xlsxFile *xlsx.File
- sheet *xlsx.Sheet
- }
-
- // NewTinyXLSXEngine init
- func NewTinyXLSXEngine() (*TinyXLSXEngine, error) {
- file := xlsx.NewFile()
-
- sheet, err := file.AddSheet("sheet1")
- if err != nil {
- beego.Error("创建 xlsx sheet 失败: " + err.Error())
- return nil, errors.New("创建 xlsx sheet 失败")
- }
-
- return &TinyXLSXEngine{
- xlsxFile: file,
- sheet: sheet,
- }, nil
- }
-
- // InsertRow 新增行
- func (t *TinyXLSXEngine) InsertRow() *xlsx.Row {
- return t.sheet.AddRow()
- }
-
- // SetCell 新增数据
- func (t *TinyXLSXEngine) SetCell(row *xlsx.Row, v interface{}) {
- rv := reflect.ValueOf(v)
- if rv.Kind() == reflect.Slice {
- for i := 0; i < rv.Len(); i++ {
- row.AddCell().SetValue(rv.Index(i).Interface())
- }
- } else {
- row.AddCell().SetValue(v)
- }
- }
-
- // Write 写数据
- func (t *TinyXLSXEngine) Write(w io.Writer) error {
- return t.xlsxFile.Write(w)
- }
|