add sample xlsx
This commit is contained in:
parent
83f0db05da
commit
d840d3eba4
1 changed files with 64 additions and 1 deletions
|
@ -11,8 +11,12 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.smarteching.com/goffee/core"
|
"git.smarteching.com/goffee/core"
|
||||||
|
// for graphs
|
||||||
"git.smarteching.com/zeni/go-chart/v2"
|
"git.smarteching.com/zeni/go-chart/v2"
|
||||||
|
// for PDF
|
||||||
"github.com/jung-kurt/gofpdf"
|
"github.com/jung-kurt/gofpdf"
|
||||||
|
// for xslx
|
||||||
|
"github.com/xuri/excelize/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
// sample buffer back, pdf
|
// sample buffer back, pdf
|
||||||
|
@ -103,10 +107,69 @@ func Themepdf(c *core.Context) *core.Response {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return c.Response.BufferPDF("elreport.pdf", b)
|
return c.Response.BufferFile("elreport.pdf", "application/pdf", b)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Themexslx(c *core.Context) *core.Response {
|
||||||
|
|
||||||
|
var b bytes.Buffer
|
||||||
|
|
||||||
|
f := excelize.NewFile()
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
if err := f.Close(); err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
for idx, row := range [][]interface{}{
|
||||||
|
{nil, "Cerveza", "Vodka", "Ron"}, {"Small", 2, 3, 3},
|
||||||
|
{"Normal", 5, 2, 4}, {"Large", 6, 7, 8},
|
||||||
|
} {
|
||||||
|
cell, err := excelize.CoordinatesToCellName(1, idx+1)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
f.SetSheetRow("Sheet1", cell, &row)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := f.AddChart("Sheet1", "E1", &excelize.Chart{
|
||||||
|
Type: excelize.Pie,
|
||||||
|
Series: []excelize.ChartSeries{
|
||||||
|
{
|
||||||
|
Name: "Totales",
|
||||||
|
Categories: "Sheet1!$B$1:$D$1",
|
||||||
|
Values: "Sheet1!$B$2:$D$2",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Format: excelize.GraphicOptions{
|
||||||
|
OffsetX: 15,
|
||||||
|
OffsetY: 10,
|
||||||
|
},
|
||||||
|
Title: []excelize.RichTextRun{
|
||||||
|
{
|
||||||
|
Text: "Fruit Pie Chart",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
PlotArea: excelize.ChartPlotArea{
|
||||||
|
ShowPercent: true,
|
||||||
|
},
|
||||||
|
}); err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
buf, err := f.WriteToBuffer()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprint(buf, err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get byte array
|
||||||
|
b.ReadFrom(buf)
|
||||||
|
|
||||||
|
return c.Response.BufferFile("elreport.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", b)
|
||||||
|
}
|
||||||
|
|
||||||
func getContents() [][]string {
|
func getContents() [][]string {
|
||||||
return [][]string{
|
return [][]string{
|
||||||
{"node1", "Swamp"},
|
{"node1", "Swamp"},
|
||||||
|
|
Loading…
Reference in a new issue