首页 > 其他分享 >Go语言轻松搞定Excel的操作,简单生成图表

Go语言轻松搞定Excel的操作,简单生成图表

时间:2024-08-05 17:40:15浏览次数:16  
标签:搞定 Fatalln func log err 单元格 Excel file Go

库简介
Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。使用本类库要求使用的 Go 语言为 1.17 或更高版本

开源仓库:github.com/xuri/excelize
创建Excel

1、在自己的项目中完成了库的安装后,即可使用Excelize创建一个新的Excel文件

func main() {
	// 新建文件
	file := excelize.NewFile()
	defer func() {
		err := file.Close()
		if err != nil {
			log.Fatalln("关闭文件异常: ", err)
		}
	}()
	// 新建工作簿
	_, err := file.NewSheet("sheet1")
	if err != nil {
		log.Fatalln("创建工作表失败: ", err)
	}
	// 保存文件
	err = file.SaveAs("test.xlsx")
	if err != nil {
		log.Fatalln("保存文件异常: ", err)
	}
}

2、写入

func main() {
	file, err := excelize.OpenFile("test.xlsx")
	if err != nil {
		log.Fatalln("打开文件异常: ", err)
	}
	defer func() {
		err := file.Close()
		if err != nil {
			log.Fatalln("关闭文件异常: ", err)
		}
	}()

	// 设置单元格值,参数1为工作表名,参数2为单元格,参数3为值
	file.SetCellStr("sheet1", "A1", "姓名")
	file.SetCellStr("sheet1", "A2", "年龄")

	// 保存文件
	err = file.Save()
	if err != nil {
		log.Fatalln("保存文件异常: ", err)
	}
}

在代码中使用SetCell方法可以写入相应的值到表格中,常见SetCell方法如下:
SetCellStr:写入字符类型值
SetCellInt:写入整形值
SetCellBool:写入布尔类型值
SetCellFloat:写入浮点类型值
……
代码运行之后打开test.xlsx文件即可看到对应的单元格已经写入了我们设置好的值

3、读取单个和批量读取

package main
import (
	"fmt"
	"github.com/xuri/excelize/v2"
	"log"
)
//
func readValue1() {
	file, err := excelize.OpenFile("test.xlsx")
	// 设置单元格值,参数1为工作表名,参数2为单元格
	value, err := file.GetCellValue("sheet1", "A1")//单个获取
	if err != nil {
		log.Fatalln("读取单元格异常: ", err)
	}

	fmt.Println("A1单元格的值为: ", value)
}

func readValue(){
	f,_:= excelize.OpenFile("test.xlsx")
	defer  f.Close()
	// Get all the rows in the Sheet1.
	rows,_:= f.GetRows("Sheet1")
	for _,row := range rows {
		for _,cellValue:= range row {
			fmt.Print(cellValue,"\t")
		}
		fmt.Println()
	}
}
func main() {
	readValue()
}


标签:搞定,Fatalln,func,log,err,单元格,Excel,file,Go
From: https://www.cnblogs.com/zh718594493/p/18343708

相关文章

  • go的并发任务如何优雅的实现错误终止
    errgroup使用案例在Go语言中,并发任务通常通过goroutine来实现,而错误处理和任务终止的优雅性则依赖于适当的同步机制和错误传播策略。场景:管理一个任务的一组子任务,每个子任务一个协程每个子任务必须保证都成功,一个出现失败应当立马停止所有子任务想知道子任务失败的原因......
  • delphi 导出到excel的7种方法
    delphi导出到excel的7种方法本文来自爱好者8888的CSDN博客,全文地址请点击:https://blog.csdn.net/kpc2000/article/details/17066823?utm_source=copy===================================================================================================第一种方法d......
  • 计算机毕业设计django+vue二手车管理系统【开题+程序+论文】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着汽车消费市场的日益成熟与二手车交易量的持续增长,构建一个高效、便捷、信息透明的二手车管理系统显得尤为重要。传统二手车交易往往存......
  • AnyGo for Mac(虚拟定位软件)永久破解下载 兼容最新系统
    AnyGoforMac是一款专为Mac用户设计的虚拟定位软件,它允许用户轻松模拟地理位置,改变设备在地图上的显示位置。这款软件以其简洁的操作界面和强大的功能而著称,用户只需简单几步即可实现虚拟定位,无需复杂的设置。AnyGo支持多种应用场景,无论是游戏定位、社交软件位置模拟还是其他需......
  • 用go实现JWT
    JWTISONWebToken,通过数字签名的方式,以JSON对象为载体,在不同的服务终端之间安全的传输信息。JWT最常见的场景就是授权认证,一旦用户登录,后续每个请求都将包含JWT,系统在每次处理用户请求的之前,都要先进行JWT安全校验,通过之后再进行处理三部分组成:Header { 'type':'j......
  • springboot3集成低版本的mongo
    随手记问题背景当项目确定技术中为springboot3(3.3.1),jdk17,vue3后,风风火火地开搞,当搞的差不多了,要连mongo时,才发现mongo服务版本为3.2.12,版本太低,以至于springboot3无法连接。maven依赖:<dependency><groupId>org.springframework.boot</groupId>......
  • excel函数的学习
    1、学习excelSUM :求和函数AVERAGE:平均值函数IFROUNDMAXMININTVLOOKUPSUMIFSUMSIFCOUNTCOUNTIFNOWTODAYMIDPHONETICLENRIGHT二、实操(1)SUM :求和函数 条件判断函数四舍五入函数最大值函数最小值函数数据取整函数条件查找函数按条件求和函数按多个条件求和函数统计数字个......
  • Django5+Vue3:OA系统前后端分离项目实战-异步优化Ajax请求(12)
    Django5+Vue3系列文章前言本节开始,全文仅对会员开放。若点赞和收藏数量超过100,全文将免费开放。此项目采用Django框架的5.0.7版本进行开发。Django5.0支持的Python版本为3.10、3.11和3.12。OA系统系列文章将持续更新,直至项目的Docker部署阶段。专栏链接:......
  • Django5+Vue3:OA系统前后端分离项目实战-Pinia用户和token信息管理(11)
    Django5+Vue3系列文章前言本节开始,全文仅对会员开放。若点赞和收藏数量超过100,全文将免费开放。此项目采用Django框架的5.0.7版本进行开发。Django5.0支持的Python版本为3.10、3.11和3.12。OA系统系列文章将持续更新,直至项目的Docker部署阶段。专栏链接:......
  • day1-Django笔记
    1.手动创建Django项目(初学则推荐)创建一个python虚拟环境>=3.61.win+r进入终端2.condaenvlist#查看有哪些虚拟环境3.condacreate--namepy36_netpython==3.6#创建一个python环境4.activate虚拟环境名#激活虚拟环境5.condadeactivate#退出虚拟环境安装dja......