简言

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

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

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

​​

 代码执行效果如下

go语言操作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")
}