go创建读取excel文件_go read excel-程序员宅基地

技术标签: golang  

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


Excelize 是 Go 语言编写的一个用来操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML 标准。可以使用它来读取、写入 XLSX 文件。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)的文档,还支持向 Excel 中插入图片,并且在保存后不会丢失图表样式

这里只演示创建和读取操作,插入图片操作github地址上有详细示例

package main

import (
	"fmt"
	"github.com/360EntSecGroup-Skylar/excelize"
)

func main() {
    
	readExcel()
	createExcel()
}

// 创建excel
func createExcel() {
    
	f := excelize.NewFile()
	// 创建新表单
	index := f.NewSheet("Sheet2")
	// 设置 value of cell(单元格)
	f.SetCellValue("Sheet2", "A2", "hello world")
	f.SetCellValue("Sheet1", "B2", 2333)
	// 设置工作簿的活动工作表,也就是打开文件默认是在sheet2
	f.SetActiveSheet(index)
	// 保存文件到给定的路径
	err := f.SaveAs("./book1.xlsx")
	if err != nil {
    
		fmt.Println(err)
	}
}

// 读取excel
func readExcel() {
    
	f, err := excelize.OpenFile("./workerinfo.xlsx")
	if err != nil {
    
		fmt.Println(err)
		return
	}

	// 从指定的 cell(单元格) 获取数据
	cell := f.GetCellValue("Sheet1", "B2")
	fmt.Println(cell)

	// 获取 Sheet1 中所有数据
	// rows: 所有行数
	rows := f.GetRows("Sheet1")
	for _, row := range rows {
    
		// 一行一行打印出来
		str := ""
		for _, cellVal := range row {
    
			str += cellVal + "--"
		}
		fmt.Println(str)
	}
}

运行后生成的excel文件,打开来默认在 sheet2 ,sheet1数据也正确

workerinfo的数据如上,运行打印如下,也正确

1
工号--姓名--性别--部门----发工资日期--工资--
20180506001--1----网络部--job1--20200202--2333--
20180506002--2----人事部--job2--20200202--3333--
20180506003--3----设计部--job3--20200202--4333--
20180506004--4----销售部--job4--20200202--5333--
20180506005--5----网络部--job5--20200202--6333--
20180506006--6----人事部--job6--20200202--7333--
20180506007--7----设计部--job1--20200202--8333--
20180506008--8----销售部--job8--20200202--9333--
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43456598/article/details/100678077

智能推荐

浪潮天梭服务器装系统步骤,浪潮天梭TS10000高性能主机系统配置方案.DOC-程序员宅基地

文章浏览阅读432次。浪潮天梭TS10000高性能主机系统配置方案浪潮天梭TS10000高性能主机系统配置方案部件名称部件型号技术规格数量 机柜系统基础模块TS422019″、42U工业标准机柜、天梭高性能服务器专用机柜;1个承重托盘,支持并柜,含布线系统,散热系统,供电系统1TS10K配件包TS10000配件包,每机柜必配一套1TS10K配件盒TS10000配件盒,(含键盘鼠标)每项目必配一套1PDU-4040个电..._浪潮天梭

ArcEngine 9.3 学习笔记(五):地图和地图布局(PageLayout对象,Page对象,SnapGrid对象,SnapGuides对象,Element 对象,MapGrid 对象..._arcengine布局视图-程序员宅基地

文章浏览阅读1.1k次。
 3.2 地图布局
3.2.1 PageLayout对象
  PageLayout用于显示地图数据,并通过对地图数据进行整饰以便对地图打印输出满足不同行业对GIS出图功能的需求。  PageLayout和Map这两个对象看起来非常相似,他们都是视图对象,可以显示地图;也都是图形元素的容器,可以容纳图形元素(Graphics Element)  区..._arcengine布局视图

fastboot下烧录img文件_fastboot 烧录img-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏4次。img镜像文件的烧录方法---适用于任何平台1. 手机需要安装相应的驱动。2. 打开命令行,执行adb reboot bootloader,重启进入bootloader界面,默认是fastboot。3. 执行 fastboot devices 查看手机是否可以烧录状态,可以看到状态就行。4. fastboot flash boot boot.img (路径拖过来)_fastboot 烧录img

Python-Ogre_ogre-python 发布方式-程序员宅基地

文章浏览阅读5.7k次。(Redirected from PyOgre)Jump to: navigation, search Python-Ogre is a Python binding for OGRE, which means you can use all of OGREs functionality using Python instead of C++. If you want t_ogre-python 发布方式

C语言libyaml基于文档的解析示例。-程序员宅基地

文章浏览阅读4.4k次,点赞4次,收藏9次。libyaml安装说明,请参照https://github.com/yaml/libyaml不过官网的示例,真是不太好找实现的样例,找了大半天,都不知道示例在搞啥,也许我不太深刻吧,果然国外人的思维和中国人不一样。其次就是解决一个非常简单的事情,读这个配置,把参数取出来就可以了,其余的不要折腾。直接上代码了。先搞个db.yaml的文件样子db_server: "localhost"db_password: "test"db_username: "abc"nationa.._libyaml

oracle11g建库后创建EM_oracle 11g的em创建表-程序员宅基地

文章浏览阅读1.5k次。需要SYS,DBSNMP,SYSMAN用户密码并解锁用户。保证job_queue_processes参数大于等于1。oracle用户下执行命令[oracle@dj ~]$ emca -config dbcontrol db -repos createEM创建完成,若遇到如下报错,先删除再创建[oracle@dj ~]$ emca -deconfig dbcontrol db -repos drop..._oracle 11g的em创建表

随便推点

Verilog-2001新增特性说明-程序员宅基地

文章浏览阅读148次。转自:http://forum.eepw.com.cn/thread/180303/1Verilog-2001标准在2001年就发布了,不过翻了一些Verilog书籍,对Verilog-2001的新增特性很少有提及,即使提到了,也只是寥寥数语带过,其实在Verilog-2001中做了很多有用的改进,给编程带来很大的帮助,有必要详细了解。 在Quartus II软件中现在..._irun编译怎么选择verilog2001

Leetcode55. 跳跃游戏-程序员宅基地

文章浏览阅读568次。代码】Leetcode55.跳跃游戏。

ViewGroup事件分发的流程图(个人理解,未必正确)_view事件的分发流程图-程序员宅基地

文章浏览阅读126次。只是自己的理解,不一定正确,请勿参考_view事件的分发流程图

python rtf读取_如何使用Python读取RTF文件,python,格式,的-程序员宅基地

文章浏览阅读1.7k次。今天查了各种资料,最终还是吧这个问题解决了。尝试了pyRTF,可惜这个库是用来保存RTF的尝试了python-doc,这个库读取rtf文件失败尝试了open 编码格式gbk,中文汉字无法识别。。。。终于终于,找到了对应方法:win32com 因为我以前貌似安装过,所以不知道应该咋装,因为自带了。话不多说直接上代码# -*- coding:utf-8 -*-'''@Author: knocky@B..._python-docx操作rtf文件

iOS开发之Xcode优化,清理Xcode编译缓存,清除provisioning profile 证书,添加provisioning profile证书_xcod生成provisioning-程序员宅基地

文章浏览阅读9.2k次。1.清除provisioning profile (1). 打开终端 (2). 进入到对应的证书目录cd ~/Library/MobileDevice/Provisioning Profiles/(3).然后删除里面所有的mobile provision文件 rm *.mobileprovision2. 清理Xcode编译文件 (可以释放大量的存储空间) (1)_xcod生成provisioning

VRPM包安装失败解决方案:had non-zero exit status-程序员宅基地

文章浏览阅读2.6k次,点赞6次,收藏5次。VRPM包安装失败解决方案:had non-zero exit status目录VRPM包安装失败解决方案:had non-zero exit status#VRPM包安装#找到VRPM包的文件地址手动安装#尝试添加依赖#尝试套用如下方案#尝试使用Rstudio#接着继续使用Rstudio本地安装VRPM包成功#VRPM包安装install.packages("VRPM")# library(VRPM)# help(VRPM)Warni_had non-zero exit status