excel--excelize
package main
import (
"fmt"
"github.com/360EntSecGroup-Skylar/excelize"
)
//简单的表格设置,设置表格头--标题
func simpleexcel() {
f := excelize.NewFile()
// 创建一个工作表
index := f.NewSheet("数据表")
// 设置单元格的值,可以当成“表头”了--标题
f.SetCellValue("数据表", "A1", "设备ID")
f.SetCellValue("数据表", "B1", "编码")
f.SetCellValue("数据表", "C1", "地址")
// 设置工作簿的默认工作表
f.SetActiveSheet(index)
// 根据指定路径保存文件
if err := f.SaveAs("data.xlsx"); err != nil {
fmt.Println(err)
}
}
//excel读取
func readexcel() {
f, err := excelize.OpenFile("./sx1.xlsx")
if err != nil {
fmt.Println(err)
return
}
// 获取工作表中指定单元格的值
//value := f.GetCellValue("data", "F1")
//fmt.Println(value)
获取 data 上所有单元格 data是我的工作表的名称
rows := f.GetRows("data")
for _, row := range rows {
fmt.Println(row) //[三层南走廊东 9000027 4000027 hkGxwgL6u03f]
fmt.Println("===============")
for _, cell := range row {
fmt.Println(cell, "\t") //三层南走廊东 ,取到单元格的内容 “三层南走廊东”
}
fmt.Println() //换一行
}
fmt.Println(rows)
/*
rows值为:
[[三层南走廊东 4000027 4000027 hkGxwgL6u03f]
[三层西走廊南 4000004 4000004 hkGxwgL6u03I]
[三层东走廊中 4000012 4000012 hkGxwgL6u03Q]
[三层东走廊南 4000020 4000020 hkGxwgL6u03Y]]
*/
}
//测试
func readData() {
f, err := excelize.OpenFile("./sx1.xlsx")
if err != nil {
fmt.Println(err)
return
}
// 获取工作表中指定单元格的值
//value := f.GetCellValue("data", "F1")
//fmt.Println(value)
获取 data 上所有单元格 data是我的工作表的名称
rows := f.GetRows("data")
for _, row := range rows {
fmt.Println(row) //[三层南走廊东 4000027 4000027 hkGxwgL6u03f]
fmt.Println("===============")
for index, cell := range row {
//index的表格是第五列的时候,打印第五列的内容
if index == 5 {
fmt.Println(cell)
}
//fmt.Println(cell, "\t", index) //三层南走廊东 ,取到单元格的内容 “三层南走廊东”
}
fmt.Println() //换一行
}
//fmt.Println(rows)
/*
rows值为:
[[三层南走廊东 4000027 4000027 hkGxwgL6u03f]
[三层西走廊南 4000004 4000004 hkGxwgL6u03I]
[三层东走廊中4000012 4000012 hkGxwgL6u03Q]
[三层东走廊南 4000020 4000020 hkGxwgL6u03Y]]
*/
}
//简单的写入数据
//新建两个sheet分别向里面写入内容信息
func sipmlewrite() {
title := map[string]string{
"A1": "ID",
"B1": "名称",
"C1": "地址",
"D1": "备注",
}
values := map[string]int{"A2": 2, "B2": 3, "C2": 4, "D2": 5}
f := excelize.NewFile()
//新建一个工作sheet 名字是“Sheet33”
//index := f.NewSheet("Sheet33")
f.NewSheet("Sheet33") //新建一个表单sheet 不需要返回索引
// 设置工作簿的默认工作表
//f.SetActiveSheet(index)
for k, v := range title {
f.SetCellValue("Sheet33", k, v)
}
for k, v := range values {
f.SetCellValue("Sheet1", k, v)
}
// 根据指定路径保存文件
if err := f.SaveAs("unittest.xlsx"); err != nil {
fmt.Println(err)
}
}
//excelize
func main() {
//简单表格调用
//simpleexcel()
//读取 Excel 文档
// ############读取 Excel 文档####################
//readexcel()
// ################################
//sipmlewrite()
// ################################
//测试判断
readData()
// ################################
}