Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
excel-sdk
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
go
excel-sdk
Commits
6527de59
Commit
6527de59
authored
Dec 26, 2022
by
yemin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
f9ca8458
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
5 deletions
+32
-5
excel.go
excel/v1/excel.go
+32
-5
No files found.
excel/v1/excel.go
View file @
6527de59
...
...
@@ -6,11 +6,12 @@ import (
"github.com/tealeg/xlsx"
"io"
"net/http"
"reflect"
"time"
)
// ToExcel 生成io.ReadSeeker 参数 titleList 为Excel表头,dataList 为数据
func
ToExcel
(
titleList
[]
string
,
dataList
[]
[]
interface
{})
(
content
io
.
ReadSeeker
)
{
func
ToExcel
(
titleList
[]
string
,
dataList
[]
interface
{})
(
content
io
.
ReadSeeker
)
{
// 生成一个新的文件
file
:=
xlsx
.
NewFile
()
// 添加sheet页
...
...
@@ -22,10 +23,36 @@ func ToExcel(titleList []string, dataList [][]interface{}) (content io.ReadSeeke
cell
.
Value
=
v
}
// 插入内容
var
types
string
=
""
var
innerTypes
string
=
""
for
_
,
v
:=
range
dataList
{
row
:=
sheet
.
AddRow
()
//row.WriteStruct(v, -1)
row
.
WriteSlice
(
&
v
,
-
1
)
vv
:=
reflect
.
ValueOf
(
v
)
if
innerTypes
==
""
{
if
vv
.
Kind
()
==
reflect
.
Ptr
{
types
=
"Ptr"
vv
=
vv
.
Elem
()
}
if
vv
.
Kind
()
==
reflect
.
Struct
{
innerTypes
=
"Struct"
}
else
if
vv
.
Kind
()
==
reflect
.
Slice
{
innerTypes
=
"Slice"
}
}
if
innerTypes
==
"Struct"
{
if
types
==
""
{
row
.
WriteStruct
(
&
v
,
-
1
)
}
else
{
row
.
WriteStruct
(
v
,
-
1
)
}
}
else
if
innerTypes
==
"Slice"
{
if
types
==
""
{
row
.
WriteSlice
(
&
v
,
-
1
)
}
else
{
row
.
WriteSlice
(
v
,
-
1
)
}
}
}
var
buffer
bytes
.
Buffer
...
...
@@ -43,8 +70,8 @@ func ResponseXls(w http.ResponseWriter, req *http.Request, content io.ReadSeeker
}
// ExportExcel 生成excel并导出
// 参数 fileName:文件名;titleList:表头;dataList:数据
func
ExportExcel
(
fileName
string
,
titleList
[]
string
,
dataList
[]
[]
interface
{},
w
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
// 参数 fileName:文件名;titleList:表头;dataList:数据
(数组指针)
func
ExportExcel
(
fileName
string
,
titleList
[]
string
,
dataList
[]
interface
{},
w
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
content
:=
ToExcel
(
titleList
,
dataList
)
ResponseXls
(
w
,
req
,
content
,
fileName
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment