127 lines
3.7 KiB
Go
127 lines
3.7 KiB
Go
package xlsx
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"git.botann.com/lijun/xlsx/export"
|
|
)
|
|
|
|
type CategoryReport struct {
|
|
ProjectID int `json:"project_id"`
|
|
ProjectName string `json:"project_name" export:"x:1,y:3"`
|
|
ProjectUnit string `json:"project_unit" export:"x:2,y:3"`
|
|
Developer string `json:"developer" export:"x:3,y:3"`
|
|
Location string `json:"location" export:"x:4,y:3"`
|
|
ProductionTime time.Time `json:"production_time" export:"x:5,y:3"`
|
|
CompanyInvest int64 `json:"company_invest" export:"x:6,y:3"`
|
|
Business []BusinessIndex `json:"business"`
|
|
}
|
|
|
|
type BusinessIndex struct {
|
|
ProjectID int `json:"project_id"`
|
|
IndexId int `json:"index_id"`
|
|
Year int `json:"year"`
|
|
Name string `json:"name"`
|
|
Amount int64 `json:"amount" export:"x:7,y:3,loop:true"`
|
|
Unit string `json:"unit"`
|
|
}
|
|
|
|
type BusinessIndexTotal struct {
|
|
IndexId int `json:"index_id"`
|
|
Name string `json:"name"`
|
|
Amount int64 `json:"amount" export:"x:7,y:2,loop:true"`
|
|
}
|
|
|
|
type CategoryStatistics struct {
|
|
Info Info `json:"info"`
|
|
List []CategoryReport `json:"list"`
|
|
}
|
|
type Info struct {
|
|
Total []BusinessIndexTotal `json:"total"`
|
|
Title []BusinessIndex `json:"title"`
|
|
}
|
|
|
|
func TestMain(t *testing.T) {
|
|
title := []export.Title{
|
|
{
|
|
Name: "项目名称",
|
|
Location: export.Location{X: 1, Y: 1},
|
|
},
|
|
{
|
|
Name: "项目单位",
|
|
Location: export.Location{X: 2, Y: 1},
|
|
},
|
|
{
|
|
Name: "开发商",
|
|
Location: export.Location{X: 3, Y: 1},
|
|
},
|
|
{
|
|
Name: "位置",
|
|
Location: export.Location{X: 4, Y: 1},
|
|
},
|
|
{
|
|
Name: "生产时间",
|
|
Location: export.Location{X: 5, Y: 1},
|
|
},
|
|
{
|
|
Name: "公司投资",
|
|
Location: export.Location{X: 6, Y: 1},
|
|
},
|
|
{
|
|
Name: "生产规模",
|
|
Location: export.Location{X: 7, Y: 1},
|
|
},
|
|
{
|
|
Name: "权益规模",
|
|
Location: export.Location{X: 8, Y: 1},
|
|
},
|
|
{
|
|
Name: "总产量",
|
|
Location: export.Location{X: 9, Y: 1},
|
|
},
|
|
{
|
|
Name: "合计",
|
|
Location: export.Location{X: 1, Y: 2},
|
|
Colspan: 6,
|
|
},
|
|
}
|
|
total := []BusinessIndexTotal{
|
|
{IndexId: 1, Name: "生产规模", Amount: 100}, {IndexId: 2, Name: "权益规模", Amount: 200}, {IndexId: 3, Name: "总产量", Amount: 300},
|
|
}
|
|
report := []CategoryReport{
|
|
CategoryReport{
|
|
ProjectID: 1, ProjectName: "项目1", ProjectUnit: "单位1", Developer: "开发商1", Location: "位置1", ProductionTime: time.Now(), CompanyInvest: 1000,
|
|
Business: []BusinessIndex{
|
|
{IndexId: 1, Name: "生产规模", Amount: 10, Unit: "吨"}, {IndexId: 2, Name: "权益规模", Amount: 20, Unit: "吨"}, {IndexId: 3, Name: "总产量", Amount: 30, Unit: "吨"},
|
|
},
|
|
},
|
|
CategoryReport{
|
|
ProjectID: 2, ProjectName: "项目2", ProjectUnit: "单位2", Developer: "开发商2", Location: "位置2", ProductionTime: time.Now(), CompanyInvest: 2000,
|
|
Business: []BusinessIndex{
|
|
{IndexId: 1, Name: "生产规模", Amount: 20, Unit: "吨"}, {IndexId: 2, Name: "权益规模", Amount: 40, Unit: "吨"}, {IndexId: 3, Name: "总产量", Amount: 60, Unit: "吨"},
|
|
},
|
|
},
|
|
CategoryReport{
|
|
ProjectID: 3, ProjectName: "项目3", ProjectUnit: "单位3", Developer: "开发商3", Location: "位置3", ProductionTime: time.Now(), CompanyInvest: 3000,
|
|
Business: []BusinessIndex{
|
|
{IndexId: 1, Name: "生产规模", Amount: 30, Unit: "吨"}, {IndexId: 2, Name: "权益规模", Amount: 60, Unit: "吨"}, {IndexId: 3, Name: "总产量", Amount: 90, Unit: "吨"},
|
|
},
|
|
},
|
|
}
|
|
info := Info{
|
|
Total: total,
|
|
}
|
|
data := CategoryStatistics{
|
|
List: report,
|
|
Info: info,
|
|
}
|
|
exporter := export.DefaultExporter()
|
|
exporter.Titles = title
|
|
exporter.Data = &data
|
|
exporter.File = "test5.xlsx"
|
|
exporter.Path = "./"
|
|
exporter.Export(0)
|
|
|
|
}
|