首页 > 其他分享 >go语言操作xlsx文件

go语言操作xlsx文件

时间:2022-12-14 11:38:51浏览次数:52  
标签:xlsx word 语言 err Sheet1 go fi SetCellValue


简言

1. go语言操作xlsx文件已经有了很完善的第三方库,本篇博客演示的是 360EntSecGroup-Skylar/excelize 的使用

2. 演示功能:读取xlsx文件,新建,写入,保存xlsx文件

完整代码及文档的下载地址

​​

 代码执行效果如下

go语言操作xlsx文件_路径名

完整代码如下

package main
import "fmt"
import "github.com/360EntSecGroup-Skylar/excelize"
// 敏感词信息
type SensitiveWord struct {
Word string // 屏蔽词
Type string // 屏蔽词类型
}
func main() {
// 读取xlsx文件,读取不到文件时要写全路径名
xlsx, err := excelize.OpenFile("./word.xlsx")
if err != nil {
fmt.Printf("读取word文件失败,err=%v", err)
return
}
allWords := []SensitiveWord{}
rows := xlsx.GetRows("Sheet1")
for i := 0; i < len(rows); i++ {
if i< 1 {
continue
}

word := SensitiveWord{}
word.Word = rows[i][0] // 第几行第几列,行号,列号都从0开始
word.Type = rows[i][1] // 第几行第几列,行号,列号都从0开始

allWords = append(allWords, word)
}
fmt.Printf("读取到的word文档内容,allWords=%v \n", allWords)

// 新建并写入一个xlsx文件
fi := excelize.NewFile()

// 页Sheet1
index := fi.NewSheet("Sheet1")

// 四个列名
fi.SetCellValue("Sheet1", "A1", "ID")
fi.SetCellValue("Sheet1", "B1", "昵称")
fi.SetCellValue("Sheet1", "C1", "年龄")
fi.SetCellValue("Sheet1", "D1", "描述")

// 填充数据
fi.SetCellValue("Sheet1", "A2", "1")
fi.SetCellValue("Sheet1", "B2", "小明")
fi.SetCellValue("Sheet1", "C2", "12")
fi.SetCellValue("Sheet1", "D2", "聪明的学生")
fi.SetCellValue("Sheet1", "A3", "2")
fi.SetCellValue("Sheet1", "B3", "小红")
fi.SetCellValue("Sheet1", "C3", "13")
fi.SetCellValue("Sheet1", "D3", "一般的学生")

fi.SetActiveSheet(index)
// 保存成xlsx文件
err = fi.SaveAs("result.xlsx")
if err != nil {
fmt.Printf("保存敏感字结果文件失败,err=%v", err)
return
}
fmt.Printf("保存xlsx文件成功\n")
}

标签:xlsx,word,语言,err,Sheet1,go,fi,SetCellValue
From: https://blog.51cto.com/u_15912066/5936240

相关文章

  • golang递归获取目录下的所有文件
    简言1.golang为我们提供了完善的文件操作库,例如os,ioutil等2.前人已经写了文件操作的示例,具体可参考这篇博客 ​​https://colobu.com/2016/10/12/go-file-operations/#mo......
  • 使用 SmartIDE 开发golang项目
    目录概述架构开发视图快速开始安装SmartIDECLI环境启动创建环境安装工具调试基本调试Start命令调试很荣幸在去年加入到SmartIDE产品组,从事开发工作,期间产品经历了无......
  • Go DevOps大厂运维平台开发进阶实战营
    使用Jenkinsfile创建流水线已报名老男孩运维课,见底下评论。enkinsfile是一个文本文件,它包含Jenkins流水线的定义,并被检入源代码控制仓库。Jenkinsfile将整个工作流存......
  • Go语言Golang DevOps运维开发实战
    Go语言GolangDevOps运维开发实战提高运维意识。从下到上,从上到下的工作都要做好,对上运维工作的价值和含金量可以得到认可,对下我们的工作能够提高效率解放运维。运维意识......
  • 汉诺塔(C语言)
    汉诺塔(TowerofHanoi),又称河内塔,是一个源于印度​古老传说的益智玩具​。大梵天​创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大......
  • 06-Go日志库Zap简单二次封装
    Go日志库Zap简单二次封装1.在项目根目录或者项目其他目录下创建二次封装代码存放目录zaplog,其他目录名称也可以2.新建config.go文件和zaplog文件,文件内容如下:config.g......
  • go windows开发环境安装
    安装golang下载下载地址:https://golang.org/dl/安装默认安装路径:C:\ProgramFiles\Go一路点击下一步PS:升级go版本可以直接卸载旧版本,然后安装新版本,环境变量与已经......
  • 006 编程语言分类(我总不能扣内存条用计算机吧)
    把目录提前写出来(1),还是讲着讲着写出来(2)1:00操作系统协调硬件和软件(应用程序)英国的大资本家()--》奴隶主--》有一堆奴隶我是程序猿--》操作系统--》计算机编程语言人和计算机......
  • 牛牛的计划题(c语言解决)
    题目:描述牛牛有一个学习计划,他计划在y年m月d日开始学习,但在之前他是绝不会开始学习的,但是他一旦开始学习就不会停下来,请你判断y1年m1月d1日牛牛应该学习吗。输......
  • go实现聊天室【简洁版】
    go写了一个简洁版的聊天室实现功能1.广播用户登录2.广播群发消息3.修改当前登录用户名4.广播用户退出服务端代码packagemainimport( "log" "net" "strings")......