You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
2.7 KiB
Go
166 lines
2.7 KiB
Go
package xlsx
|
|
|
|
import (
|
|
"context"
|
|
"joybuywork/internal/plugins/export"
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func getData() (export.HeaderField, []export.RowData) {
|
|
header := export.HeaderField{
|
|
{
|
|
Field: "name",
|
|
Title: "姓名",
|
|
},
|
|
{
|
|
Field: "age",
|
|
Title: "年龄",
|
|
},
|
|
{
|
|
Field: "like",
|
|
Title: "喜欢",
|
|
},
|
|
{
|
|
Field: "type",
|
|
Title: "类型",
|
|
},
|
|
}
|
|
|
|
var data []export.RowData
|
|
for i := 0; i < 20; i++ {
|
|
row := export.RowData{
|
|
"name": fmt.Sprintf("学生%d", i),
|
|
"age": 15,
|
|
"like": fmt.Sprintf("不知道%d", i),
|
|
"type": i % 3,
|
|
}
|
|
data = append(data, row)
|
|
}
|
|
|
|
return header, data
|
|
}
|
|
|
|
func TestExportXlsx(t *testing.T) {
|
|
header, data := getData()
|
|
|
|
ept := NewExport(context.Background(), header, int64(len(data)))
|
|
err := ept.ExportFile(data)
|
|
t.Log(err, ept.GetFullPath())
|
|
}
|
|
|
|
func TestProceed(t *testing.T) {
|
|
header, data := getData()
|
|
|
|
xt, err := NewExport(context.Background(), header, int64(len(data)),
|
|
export.UseFile(
|
|
"ept_c6dhe3kjmgh5q40gftsg82921.xlsx",
|
|
"G:\\Work\\go\\src\\app_service\\pkg\\components\\export\\xlsx/tmp/export/ept_c6dhe3kjmgh5q40gftsg82921.xlsx",
|
|
),
|
|
).UpgradeTask(export.UserProceed(500, 0))
|
|
|
|
if err != nil {
|
|
t.Log(err)
|
|
return
|
|
}
|
|
|
|
export.Done(xt)
|
|
|
|
xt.AppendData(data)
|
|
|
|
reply := <-xt.GetReply()
|
|
|
|
if reply.Error != nil {
|
|
t.Log(err)
|
|
return
|
|
}
|
|
t.Log(reply.Filename, reply.FilePath, reply.Fr)
|
|
}
|
|
|
|
func TestExportXlsxSheet(t *testing.T) {
|
|
header, data := getData()
|
|
|
|
dataL := int64(len(data))
|
|
|
|
xt, err := NewExport(context.Background(), header, dataL).Use(
|
|
UseDefaultSheet("一阶"),
|
|
UseManySheet(
|
|
Sheet{
|
|
Name: "一阶",
|
|
Header: header,
|
|
Total: 10,
|
|
SwitchField: []SwitchField{
|
|
{
|
|
Key: "type",
|
|
Val: 0,
|
|
},
|
|
},
|
|
},
|
|
Sheet{
|
|
Name: "二阶",
|
|
Header: header,
|
|
Total: 5,
|
|
SwitchField: []SwitchField{
|
|
{
|
|
Key: "type",
|
|
Val: 1,
|
|
},
|
|
},
|
|
},
|
|
Sheet{
|
|
Name: "三阶",
|
|
Header: header,
|
|
Total: 5,
|
|
SwitchField: []SwitchField{
|
|
{
|
|
Key: "type",
|
|
Val: 2,
|
|
},
|
|
},
|
|
},
|
|
),
|
|
).UpgradeTask()
|
|
if err != nil {
|
|
t.Log(err)
|
|
return
|
|
}
|
|
|
|
export.Done(xt)
|
|
|
|
xt.AppendData(data)
|
|
|
|
reply := <-xt.GetReply()
|
|
|
|
if reply.Error != nil {
|
|
t.Log(reply.Error)
|
|
return
|
|
}
|
|
t.Log(reply.Filename, reply.FilePath, reply.Fr)
|
|
}
|
|
|
|
func TestExportXlsxTask(t *testing.T) {
|
|
header, data := getData()
|
|
|
|
xt, err := NewExport(context.Background(), header, int64(len(data))).UpgradeTask(export.UseFinishPart(200, func(spn, nfp float64) {
|
|
t.Log(spn, nfp)
|
|
}))
|
|
if err != nil {
|
|
t.Log(err)
|
|
return
|
|
}
|
|
|
|
xt.GetHashMark()
|
|
|
|
export.Done(xt)
|
|
|
|
xt.AppendData(data)
|
|
|
|
reply := <-xt.GetReply()
|
|
|
|
if reply.Error != nil {
|
|
t.Log(err)
|
|
return
|
|
}
|
|
t.Log(reply.Filename, reply.FilePath, reply.Fr)
|
|
}
|