当前位置:首页 > 文章列表 > Golang > Go教程 > Golang模块引入及表格读写业务快速实现示例

Golang模块引入及表格读写业务快速实现示例

来源:脚本之家 2023-01-01 09:02:35 0浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《Golang模块引入及表格读写业务快速实现示例》,主要介绍了模块引入、表格读写,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

介绍

在很多管理系统下都有不少让后端进行表格进行操作的业务需求,本期就带大家了解一下Golang中如何使用模块引入的,以及讲解怎么快速的使用excelize库,对表格进行读写创建的。

正文

配置模块引入环境

我们在期望在vscode终端中也可以使用模块引入,它是 Go 1.11后新版模块管理方式。

go env -w GO111MODULE=auto

GO111MODULE 可以传递:

  • auto:在其外层且根目录里有 go.mod 文件时,则开启模块支持,否者无模块支持。
  • on:开启模块支持。
  • off:无模块支持。

然后,初始化这个项目,就会生成一个 go.mod 文件。

go mod init excel-demo

 go.mod 是Go 1.11版本引入的官方的包管理工具(之前为 gopath 来管理),它可以理解为前端开发中的 npm 的作用,主要是为了解决没有记录依赖包具体版本查阅困难的问题,也极大程度上方便了依赖包的管理。

引入excelize库

excelize 是一个用于读写 Microsoft Excel™2007 及更高版本生成的电子表格文档(XLAM / XLSM / XLSX / XLTM / XLTX)的 Go 语言库,而且更新维护频繁且非常好用。

引入excelize

go get github.com/xuri/excelize/v2

这里因为站点是国外的所以经常会因无法访问而超时。此时,不要慌,我们换一个国内的代理就好了。

go env -w GOPROXY=https://goproxy.cn

创建表格

package main
import (
    "fmt"
    "github.com/xuri/excelize/v2"
)
func createExcel(){
    // 创建表格文件
	f := excelize.NewFile()
    // 在Sheet1设置A1项的值
	f.SetCellValue("Sheet1", "A1", "这是Sheet1的A1项")
    // 创建新的Sheet,命名为Sheet2
	selectIndex := f.NewSheet("Sheet2")
    // 在Sheet2设置B2项的值
	f.SetCellValue("Sheet2", "B2", "这是Sheet2的B2项")
    // 切换到Sheet2
    f.SetActiveSheet(selectIndex)
    // 保存文件
    if err := f.SaveAs("test.xlsx"); err != nil {
        fmt.Println(err)
    }
}
func main() {
    // 执行创建表格
	createExcel()
}

按照以上是创建文件并在列上随便写入一些数据然后保存下来,非常的简单,现在我们来执行一下,就会发现当前目录会多出一个text.xlsx文件,没错,这就是我们刚才生成出来的表格文件,打开它就可以看到我们刚才写入的一些内容了。

读取表格

func openExcel(){
	// 读取test.xlsx表格文件
	f, err := excelize.OpenFile("test.xlsx")
    if err != nil {
        fmt.Println(err)
        return
    }
    // 获取Sheet2的B2项的值
    cell, err := f.GetCellValue("Sheet2", "B2")
    if err != nil {
        fmt.Println(err)
        return
    }
	fmt.Println(cell)
	fmt.Println("---------------")
	// 获取Sheet1所有的项
    rows, err := f.GetRows("Sheet1")
    if err != nil {
        fmt.Println(err)
        return
	}
	// 遍历Sheet1所有的项并打印出来
    for _, row := range rows {
        for _, colCell := range row {
            fmt.Print(colCell, "\t")
        }
        fmt.Println()
    }
}

上面做的操作是把我们刚才保存好的表格文件的内容读取出来,这里分了两种形式,一种是用 GetCellValue 方法读取某个sheet的某一项,另一种是用 GetRows 对获取整个sheet的项,然后for循环遍历出来。

写入表格

刚刚在创建的时候其实已经使用 SetCellValue 方法对表格的写入操作,但这还远远不够,因为还有很多东西我们可以写入进去,比如说图表和图片甚至是其他表格文件。图表这里先简单说明一下,它用了 AddChart 方法也是对某一项进行操作,插入相关数据进去,形式如下(详见文档):

if err := f.AddChart("Sheet1", "E1", `{
        "type": "col3DClustered",
        "series": [
        {
            "name": "Sheet1!$A$2",
            "categories": "Sheet1!$B$1:$D$1",
            "values": "Sheet1!$B$2:$D$2"
        }]
        }`); err != nil {
    fmt.Println(err)
    return
}

接下来,我们主要讲一下图片是如何写入进表格的,首先,我们先准备一张图片,就放在assets目录吧,然后在到 import 中导入jpeg和png,目的是明确后面要解析的图片(目前可以解析出jpeg,jpg,png格式的图片了),如果不写或者格式不对则会出现 image: unknown format 的提示。

package main
import (
	"fmt"
	_ "image/jpeg"
    _ "image/png"
    "github.com/xuri/excelize/v2"
)

然后我们还是要读取一下刚刚生成出来的test.xlsx表格文件,再把图片写入进去。

func setPic(){
	f, err := excelize.OpenFile("test.xlsx")
    if err != nil {
        fmt.Println(err)
        return
	}
	// 导入并设置图片
    if err := f.AddPicture("Sheet2", "C3", "assets/anya.png",
		`{
			"x_offset": 10,
        	"y_offset": 10,
			"x_scale": 0.8, 
			"y_scale": 0.8
		}`); err != nil {
        fmt.Println(err)
	}
	// 保存刚才的操作
	if err = f.Save(); err != nil {
        fmt.Println(err)
    }
}

而且图片还可以这是位置,大小等参数,但这里一定要记住不管添加了什么最后一定要保存一下,不然就是一场空。最后么,一个小阿尼亚就写入到了表格中啦~

结语

本篇主要是带大家简单了解怎么使用excelize库对表格进行操作,其实都还是皮毛,它的功能比你想的还要强大,详细的可以看 官方文档 ,算是一个非常实用的工具库了,更多关于Go模块引入表格读写的资料请关注golang学习网其它相关文章!

本篇关于《Golang模块引入及表格读写业务快速实现示例》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

版本声明
本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
Go实现文件分片上传Go实现文件分片上传
上一篇
Go实现文件分片上传
gomockserver的简易实现示例
下一篇
gomockserver的简易实现示例
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • ChatExcel酷表:告别Excel难题,北大团队AI助手助您轻松处理数据
    ChatExcel酷表
    ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
    3167次使用
  • Any绘本:开源免费AI绘本创作工具深度解析
    Any绘本
    探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
    3380次使用
  • 可赞AI:AI驱动办公可视化智能工具,一键高效生成文档图表脑图
    可赞AI
    可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
    3409次使用
  • 星月写作:AI网文创作神器,助力爆款小说速成
    星月写作
    星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
    4513次使用
  • MagicLight.ai:叙事驱动AI动画视频创作平台 | 高效生成专业级故事动画
    MagicLight
    MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
    3789次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码