原文链接:https://blog.csdn.net/wangshubo1989/article/details/78181493

xlsx简介

A file with the XLSX file extension is a Microsoft Excel Open XML Format Spreadsheet file. It’s an XML-based spreadsheet file created by Microsoft Excel version 2007 and later.

XLSX files organize data in cells that are stored in worksheets, which are in turn stored in workbooks, which are files that contain multiple worksheets. The cells are positioned by rows and columns and can contain styles, formatting, math functions, and more.

Microsoft Office EXCEL 2007/2010/2013/2016文档的扩展名。xlsx是从Office2007开始使用的,是用新的基于XML的压缩文件格式取代了其目前专有的默认文件格式,在传统的文件名扩展名后面添加了字母x(即:docx取代doc、.xlsx取代xls等等),使其占用空间更小。

tealeg/xlsx

github地址:
https://github.com/tealeg/xlsx

Star: 1954

获取:
go get github.com/tealeg/xlsx

有点excel基础的人,都应该清楚什么是sheet,什么是row,cell即内容。

package mainimport ("fmt""github.com/tealeg/xlsx"
)func main() {excelFileName := "test.xlsx"xlFile, err := xlsx.OpenFile(excelFileName)if err != nil {fmt.Printf("open failed: %s\n", err)}for _, sheet := range xlFile.Sheets {fmt.Printf("Sheet Name: %s\n", sheet.Name)for _, row := range sheet.Rows {for _, cell := range row.Cells {text,_ := cell.String()fmt.Printf("%s\n", text)}}}
}

创建xlsx

package mainimport ("fmt""github.com/tealeg/xlsx"
)func main() {var file *xlsx.Filevar sheet *xlsx.Sheetvar row, row1, row2 *xlsx.Rowvar cell *xlsx.Cellvar err errorfile = xlsx.NewFile()sheet, err = file.AddSheet("Sheet1")if err != nil {fmt.Printf(err.Error())}row = sheet.AddRow()row.SetHeightCM(1)cell = row.AddCell()cell.Value = "姓名"cell = row.AddCell()cell.Value = "年龄"row1 = sheet.AddRow()row1.SetHeightCM(1)cell = row1.AddCell()cell.Value = "狗子"cell = row1.AddCell()cell.Value = "18"row2 = sheet.AddRow()row2.SetHeightCM(1)cell = row2.AddCell()cell.Value = "蛋子"cell = row2.AddCell()cell.Value = "28"err = file.Save("test_write.xlsx")if err != nil {fmt.Printf(err.Error())}
}

修改xlsx

package mainimport ("github.com/tealeg/xlsx"
)func main() {excelFileName := "test.xlsx"xlFile, err := xlsx.OpenFile(excelFileName)if err != nil {panic(err)}first := xlFile.Sheets[0]row := first.AddRow()row.SetHeightCM(1)cell := row.AddCell()cell.Value = "铁锤"cell = row.AddCell()cell.Value = "99"err = xlFile.Save(excelFileName)if err != nil {panic(err)}
}

Luxurioust/excelize或360EntSecGroup-Skylar/excelize## 标题

github地址:
https://github.com/360EntSecGroup-Skylar/excelize

Star: 1476

获取:
go get github.com/xuri/excelize

## 读取xlsx

package main

import (
“fmt”

"github.com/xuri/excelize"

)

func main() {
xlsx, err := excelize.OpenFile(“test.xlsx”)
if err != nil {
fmt.Println(err)
return
}
cell := xlsx.GetCellValue(“Sheet1”, “B2”)
fmt.Println(cell)

rows := xlsx.GetRows("Sheet1")
for _, row := range rows {for _, colCell := range row {fmt.Print(colCell, "\t")}fmt.Println()
}

创建xlsx

package mainimport ("fmt""github.com/xuri/excelize"
)func main() {xlsx := excelize.NewFile()index := xlsx.NewSheet("Sheet1")xlsx.SetCellValue("Sheet1", "A1", "姓名")xlsx.SetCellValue("Sheet1", "B1", "年龄")xlsx.SetCellValue("Sheet1", "A2", "狗子")xlsx.SetCellValue("Sheet1", "B2", "18")// Set active sheet of the workbook.xlsx.SetActiveSheet(index)// Save xlsx file by the given path.err := xlsx.SaveAs("test_write.xlsx")if err != nil {fmt.Println(err)}
}
## 插入图表

package main

import (
“fmt”

"github.com/xuri/excelize"

)

func main() {
categories := map[string]string{“A2”: “Small”, “A3”: “Normal”, “A4”: “Large”, “B1”: “Apple”, “C1”: “Orange”, “D1”: “Pear”}
values := map[string]int{“B2”: 2, “C2”: 3, “D2”: 3, “B3”: 5, “C3”: 2, “D3”: 4, “B4”: 6, “C4”: 7, “D4”: 8}
xlsx := excelize.NewFile()
for k, v := range categories {
xlsx.SetCellValue(“Sheet1”, k, v)
}
for k, v := range values {
xlsx.SetCellValue(“Sheet1”, k, v)
}
xlsx.AddChart(“Sheet1”, “E1”, {"type":"bar3D","series":[{"name":"=Sheet1!$A$2","categories":"=Sheet1!$B$1:$D$1","values":"=Sheet1!$B$2:$D$2"},{"name":"=Sheet1!$A$3","categories":"=Sheet1!$B$1:$D$1","values":"=Sheet1!$B$3:$D$3"},{"name":"=Sheet1!$A$4","categories":"=Sheet1!$B$1:$D$1","values":"=Sheet1!$B$4:$D$4"}],"title":{"name":"Fruit 3D Line Chart"}})
// Save xlsx file by the given path.
err := xlsx.SaveAs(“test_write.xlsx”)
if err != nil {
fmt.Println(err)
}
}

插入图片

package mainimport ("fmt"_ "image/gif"_ "image/jpeg"_ "image/png""github.com/xuri/excelize"
)func main() {xlsx, err := excelize.OpenFile("test.xlsx")if err != nil {fmt.Println(err)return}// Insert a picture.err = xlsx.AddPicture("Sheet1", "A2", "image1.png", "")if err != nil {fmt.Println(err)}// Insert a picture to worksheet with scaling.err = xlsx.AddPicture("Sheet1", "D2", "image2.jpg", `{"x_scale": 0.5, "y_scale": 0.5}`)if err != nil {fmt.Println(err)}// Insert a picture offset in the cell with printing support.err = xlsx.AddPicture("Sheet1", "H2", "image3.gif", `{"x_offset": 15, "y_offset": 10, "print_obj": true, "lock_aspect_ratio": false, "locked": false}`)if err != nil {fmt.Println(err)}// Save the xlsx file with the origin path.err = xlsx.Save()if err != nil {fmt.Println(err)}
}

golang中操作excel(tealeg/xlsx、360EntSecGroup-Skylar/excelize)相关推荐

  1. Go实战--golang中操作excel(tealeg/xlsx、360EntSecGroup-Skylar/excelize)

    生命不止,继续 go go go !!! 匆匆十一假期,继续go,北京阴雨连连: 渲染了一种悲凉的气氛: 暗示了人物双假结束的悲惨命运: 揭露了下半年再无假期的凄惨社会环境: 为假期后各种辛苦的工作埋 ...

  2. Go实战--golang中操作PDF(rsc.io/pdf、jung-kurt/gofpdf、signintech/gopdf)

    生命不止,继续 go go go !!! 昨天介绍了golang中如何操作excel: Go实战–golang中操作excel(tealeg/xlsx.360EntSecGroup-Skylar/ex ...

  3. Python操作excel(.xlsx)封装类MyPyExcel V2.0

    这是自己在做项目过程中,整理封装的Python操作excel(.xlsx)封装类MyPyExcel.都是项目实践过的,可直接拿来使用! myPyDoExcel.py """ ...

  4. Python openpyxl打开有公式的excel表取值错误的解决办法,Python openpyxl获取excel有公式的单元格的数值错误,Python操作excel(.xlsx)封装类

    Python openpyxl打开有公式的表格,如果直接读取,会出现有公式的单元格为空或零的情况. 参见: https://blog.csdn.net/weixin_45903952/article/ ...

  5. python 操作excel(xlsx)进行保存

    python 操作excel(xlsx)进行保存 导入xlsx操作包 from openpyxl import load_workbook 在代码同个文件夹下,创建一个xlsx,如"myex ...

  6. python 编辑excel需要什么包_Python 中操作EXCEL表格的包

    今天,马云爸爸又来贡献金句了,比王健林公公一亿一个小目标还高,"一个月挣一二十个亿很难受!!!",作为在传统企业主要为电商部门提供数据分析的数据分析师,体验太深刻了. 双11前后, ...

  7. android jxl.jar 使用,使用jxl.jar在Android中操作Excel表格——重中之重——对隐藏表的处理...

    曾简单了解过C#,将Excel(数据库表)表中的数据导入到C#中,使用C#制作的图形化界面进行对Excel表中数据进行操作. 今天想试试,在Android中导入Excel表格进行操作.在网上查阅资料, ...

  8. 十六、Python操作excel(.xlsx)封装类MyPyExce

    自己利用python编写的操作excel封装类 """ ================================================ Python模块 ...

  9. python在excel中数据画线_python中操作excel数据

    python操作excel,python有提供库 本文介绍openpyxl,他只支持新型的excell( xlsx)格式,读取速度还可以 1.安装 pip install openpyxl 2.使用 ...

最新文章

  1. python代码大全表解释-Python中顺序表的实现简单代码分享
  2. 海量数据处理_国家重点研发计划“面向异构体系结构的高性能分布式数据处理技术与系统”简介...
  3. MakeFile 文件的作用
  4. oracle中case when关键字的使用
  5. SpringBoot集成其他技术-集成Redis
  6. kvm虚拟化_KVM 虚拟化环境搭建 - WebVirtMgr
  7. l380废墨收集垫已到使用寿命_湖北土工网垫
  8. python标准化_数据标准化与Python实现
  9. Java MD5加密工具类
  10. 何凯明新作ViTDET:目标检测领域,颠覆分层backbone理念
  11. EDA学习1.3之开关的封装
  12. java opencv磨皮算法_美肤磨皮算法OpenCV3实现
  13. L1-040 最佳情侣身高差(Python3)
  14. Java和JavaScript有什么区别?
  15. 错误:端口被占用解决办法
  16. 魔兽地图编辑器插件YDWE的使用与基本设置5 触发编辑器1 选择英雄
  17. 德银天下再度冲刺港交所上市,股东提前“套现”了5个亿
  18. oracle 安装sde,linux安装SDE 10
  19. 分步式数据库_创建真实数据科学项目的分步指南
  20. 2009年8月手机搜索热门关键词排行榜

热门文章

  1. DSMall多店铺商城B2B2C功能列表清单
  2. Oracle安装时先决条件检查失败和[INS-35180] 无法检查可用内存问题解决
  3. 利用python进入数据分析之全美婴儿姓名分析
  4. WIN10系统Dcom占用系统CPU使用率的解决方法
  5. 黑马程序员--高新技术--静态导入,基本数据类型拆箱与装箱,享元设计模式
  6. JAVA中的静态导入
  7. 【Linux】多线程(上)
  8. 服务器http协议拨测状态告警,使用 SCF 无服务器云函数定时拨测站点并邮件告警...
  9. linux运维对比python,Linux运维对比:Shell运维 VS Python运维 | 求索阁
  10. Maven的POM文件parent节点不可以使用properties里面的变量