文章目录

  • 1. 设置单元格格式
    • 1.1 值类型
    • 1.2 设置布尔型值
    • 1.3 设置为默认字符型值
    • 1.4 设置字符型值
    • 1.5 设置实数格式
  • 2. 超链接
    • 2.1 设置超链接
    • 2.2 获取超链接
  • 3.富文本
    • 3.1 设置富文本格式
    • 3.2 获取富文本格式
  • 4. 获取单元格信息
    • 4.1 获取单元格的值
    • 4.2 按列获取单元格数据
    • 4.3 按行获取全部单元格的值
    • 4.4 获取单元格类型
    • 4.5 获取样式索引
  • 5. 合并单元格
    • 5.1 合并单元格
    • 5.2 取消合并单元格
    • 5.3 获取合并单元格位置
    • 5.4 获取合并单元格数值
    • 5.5 获取合并单元格区域左上角单元格坐标
    • 5.6 获取合并单元格区域左上角单元格坐标

1. 设置单元格格式

1.1 值类型

  • 语法
func (f *File) SetCellValue(sheet string, axis string, value interface{}) error

说明:

  • axis:单元格位置
  • value:向单元格中写入的值
  • 完整示例
package mainimport ("fmt""github.com/xuri/excelize/v2""time"
)func main() {f := excelize.NewFile()t, _ := time.ParseInLocation("20060102150405", "20100424082959", time.Local)//字串f.SetCellValue("Sheet1","B1","LiuBei")//时间f.SetCellValue("Sheet1","B2",t)//整形f.SetCellValue("Sheet1","B3",11)//浮点型f.SetCellValue("Sheet1","B4",3.1415926)if err := f.SaveAs("sanGuo.xlsx"); err != nil {fmt.Println(err)}
}

1.2 设置布尔型值

  • 语法
func (f *File) SetCellBool(sheet, axis string, value bool) error
  • 完整示例
package mainimport ("fmt""github.com/xuri/excelize/v2"
)func main() {f := excelize.NewFile()f.SetCellBool("Sheet1","B1",true)f.SetCellBool("Sheet1","B2",false)if err := f.SaveAs("sanGuo.xlsx"); err != nil {fmt.Println(err)}
}
  • 结果

1.3 设置为默认字符型值

  • 语法
func (f *File) SetCellDefault(sheet string, axis string, value string) error
  • 语法示例
f.SetCellDefault("Sheet1","B1","liuBbei")

1.4 设置字符型值

据说和“默认字符型的区别是”它会进行特殊字符过滤,并且字符串的累计长度应不超过 32767,但是并没有试验出差别

  • 语法
func (f *File) SetCellStr(sheet, axis, value string) error
  • 语法示例
f.SetCellStr("Sheet1","B1","liuBbei")

1.5 设置实数格式

  • 语法
func (f *File) SetCellInt(sheet, axis string, value int) error
  • 语法示例
f.SetCellInt("Sheet1","B1",1)

2. 超链接

2.1 设置超链接

  • 语法
func (f *File) SetCellHyperLink(sheet, axis, link, linkType string, opts ...HyperlinkOpts) error
  • HyperlinkOpts结构体
type HyperlinkOpts struct {Display *stringTooltip *string
}
  • 语法示例
 f.SetCellHyperLink("Sheet1", "B2", url, "External", excelize.HyperlinkOpts{Display: &url,Tooltip: &tooltip,})
  • 完整示例
package mainimport ("github.com/xuri/excelize/v2"
)func main() {f := excelize.NewFile()tooltip := "My blog address"url := "https://blog.csdn.net/xingzuo_1840"//为单元格设置超链接f.SetCellHyperLink("Sheet1", "B2",url, "External", excelize.HyperlinkOpts{Display: &url,Tooltip: &tooltip,})// 为单元格设置字体和下划线样式style,_ := f.NewStyle(&excelize.Style{Font: &excelize.Font{Color: "#1265BE", Underline: "single"},})f.SetCellStyle("Sheet1", "B2", "A3", style)//给单元格写写内容f.SetCellValue("Sheet1", "B2", "LiuBei")f.SaveAs("sanGuo.xlsx")
}

结果显示

2.2 获取超链接

func (f *File) GetCellHyperLink(sheet, axis string) (bool, string, error)

3.富文本

3.1 设置富文本格式

  • 语法
func (f *File) SetCellRichText(sheet, cell string, runs []RichTextRun) error
  • RichTextRun 结构体
type RichTextRun struct {Font *FontText string
}
  • 完整示例
package mainimport ("github.com/xuri/excelize/v2"
)func main() {f := excelize.NewFile()//设置富文本runs := []excelize.RichTextRun{{Font: &excelize.Font{Size: 20,Color: "#0000FF",},Text: "LiuBei",},{Font: &excelize.Font{Size: 12,Color: "#FF0000",},Text: "\r\nGuanYu",},{Font: &excelize.Font{Size: 12,Color: "#000000",},Text: "\r\nZhangFei",},}f.SetCellRichText("Sheet1","B2",runs)//设置自动换行styleId,_ := f.NewStyle(&excelize.Style{Alignment: &excelize.Alignment{WrapText: true,},})f.SetCellStyle("Sheet1","B2","B2",styleId)//给单元格写写内容f.SaveAs("sanGuo.xlsx")
}

结果显示

3.2 获取富文本格式

  • 语法

  • 完整示例
package mainimport ("fmt""github.com/xuri/excelize/v2"
)func main() {//读取刚才生成的电子表格f, err := excelize.OpenFile("sanGuo.xlsx")if err != nil {fmt.Println(err)return}defer func() {if err = f.Close(); err != nil {fmt.Println(err)}}()// 获取富文本格式rune,_ := f.GetCellRichText("Sheet1","B2")fmt.Printf("%+v",rune)
}
  • 结果显示
[{Font:0xc00034d920 Text:LiuBei}
{Font:0xc00034d980 Text:GuanYu}
{Font:0xc00034d9e0 Text:ZhangFei}]

4. 获取单元格信息

4.1 获取单元格的值

  • 语法
func (f *File) GetCellValue(sheet, axis string, opts ...Options) (string, error)
  • 语法示例
cell, err := f.GetCellValue("Sheet1", "B2")

4.2 按列获取单元格数据

  • 语法
func (f *File) GetCols(sheet string, opts ...Options) ([][]string, error)
  • 完整示例

    • 创建sanGuo.xlsx表如下:
    • 代码
package mainimport ("fmt""github.com/xuri/excelize/v2"
)func main() {f, err := excelize.OpenFile("sanGuo.xlsx")if err != nil {fmt.Println(err)return}defer func() {if err = f.Close(); err != nil {fmt.Println(err)}}()cols,_ := f.GetCols("Sheet1")fmt.Printf("GetCols函数获取到数据:\n%+v\n",cols)
}

结果显示

GetCols函数获取到数据:
[[序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] [IP 10.10.181.128 10.10.181.129 10.10.181.130 10.10.181.131 10.10.181.132 10.10.181.133 10.10.181.134 10.10.181.135 10.10.181.136 10.10.181.137 10.10.181.138 10.10.181.139 10.10.181.140 10.10.181.141 10.10.181.142] [责任人 关羽 关羽 关羽 关羽 诸葛亮 诸葛亮 诸葛亮 诸葛亮 诸葛亮 张飞 张飞 张飞 赵云 赵云 赵云]]

4.3 按行获取全部单元格的值

  • 语法
func (f *File) GetRows(sheet string, opts ...Options) ([][]string, error)
  • 语法示例
rows,_ := f.GetRows("Sheet1")
  • 完整示例
package mainimport ("fmt""github.com/xuri/excelize/v2"
)func main() {f, err := excelize.OpenFile("sanGuo.xlsx")if err != nil {fmt.Println(err)return}defer func() {if err = f.Close(); err != nil {fmt.Println(err)}}()rows,_ := f.GetRows("Sheet1")fmt.Printf("GetRows函数获取到数据:\n%+v\n",rows)
}
  • 结果显示
GetRows函数获取到数据:
[[序号 IP 责任人] [1 10.10.181.128 关羽] [2 10.10.181.129 关羽] [3 10.10.181.130 关羽] [4 10.10.181.131 关羽] [5 10.10.181.132 诸葛亮] [6 10.10.181.133 诸葛亮] [7 10.10.181.134 诸葛亮] [8 10.10.181.135 诸葛亮] [9 10.10.181.136 诸葛亮] [10 10.10.181.137 张飞] [11 10.10.181.138 张飞] [12 10.10.181.139 张飞] [13 10.10.181.140 赵云] [14 10.10.181.141 赵云] [15 10.10.181.142 赵云]]

4.4 获取单元格类型

  • 语法
func (f *File) GetCellType(sheet, axis string) (CellType, error)

4.5 获取样式索引

func (f *File) GetCellStyle(sheet, axis string) (int, error)

5. 合并单元格

5.1 合并单元格

  • 语法
func (f *File) MergeCell(sheet, hCell, vCell string) error
  • 语法示例
err := f.UnmergeCell("Sheet1", "B2", "D4")

5.2 取消合并单元格

  • 语法
func (f *File) UnmergeCell(sheet string, hCell, vCell string) error
  • 语法示例
err := f.UnmergeCell("Sheet1", "B2", "D4")

5.3 获取合并单元格位置

获取整个表的所有合并单元格位置

  • 语法
func (f *File) GetMergeCells(sheet string) ([]MergeCell, error)

说明:MergeCell 类型为 []string,标记了一个合并单元格的开始和结束位置。

  • 语法示例
mergeCells,_ := f.GetMergeCells("Sheet1")
  • 完整示例
package mainimport ("fmt""github.com/xuri/excelize/v2"
)func main() {f := excelize.NewFile()f.MergeCell("Sheet1","B2","D4")f.MergeCell("Sheet1","B9","E10")mergeCells,_ := f.GetMergeCells("Sheet1")fmt.Printf("%+v",mergeCells)
}

5.4 获取合并单元格数值

  • 语法
func (m *MergeCell) GetCellValue() string

注意,该方法是*MergeCell,不是*File

  • 完整示例
package mainimport ("fmt""github.com/xuri/excelize/v2"
)func main() {f := excelize.NewFile()f.SetCellValue("sheet1","B2","LiuBei")f.SetCellValue("sheet1","B9","GuanYu")f.MergeCell("Sheet1","B2","D4")f.MergeCell("Sheet1","B9","E10")mergeCells,_ := f.GetMergeCells("Sheet1")for _,mergeCell := range mergeCells {mergeCellValue := mergeCell.GetCellValue()fmt.Println(mergeCellValue)}
}
  • 结果显示
LiuBei
GuanYu

5.5 获取合并单元格区域左上角单元格坐标

  • 语法
获取合并单元格区域左上角单元格坐标

5.6 获取合并单元格区域左上角单元格坐标

  • 语法
func (m *MergeCell) GetEndAxis() string

Go语言excelize包-05-单元格操作(设置单元格格式、超链接、富文本、获取单元格信息、合并单元格)相关推荐

  1. C# 获取Excel中的合并单元格

    C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格.在取消合并单元格时需要逐个查找及取消,比较麻烦.这里分享一个简单的方法来识别Excel中的合并单元格,识别这 ...

  2. R语言survival包clogit函数构建条件logistic回归模型、summary函数查看模型汇总统计信息、通过似然比检验分析结果判断模型有无统计学意义

    R语言survival包clogit函数构建条件logistic回归模型.summary函数查看模型汇总统计信息.通过似然比检验分析结果判断模型有无统计学意义 目录

  3. 【操作word】Java + POI导出富文本的内容到word文档

    这周工作中,遇到一个需求是需要将数据库中富文本内容导出到word文档里面,于是就采用POI技术实现了一下导出word文档的功能.(word文档是识别html内容的,所以富文本内容也自然能够识别.) 一 ...

  4. python 读取合并单元格的excel_python 利用三方的xlrd模块读取excel文件,处理合并单元格...

    目的: python能使用xlrd模块实现对Excel数据的读取,且按照想要的输出形式. 总体思路: (1)要想实现对Excel数据的读取,需要用到第三方应用,直接应用. (2)实际操作时候和我们实际 ...

  5. Python读取excel文件可读取xlsx格式和xls格式可直接读取超链接,读出为字典格式(列表套字典),处理合并单元格的问题

    直接上代码:(代码有注释,代码下方有解释) 1.可读取excel中的xlsx格式文件 2.可读取excel中的xls格式文件 3.可直接读取网页上的excel的超链接 4.解决有列合并的情况以及行合并 ...

  6. pythonxlwt行居中_python3-xlwt-Excel设置(字体大小、颜色、对齐方式、换行、合并单元格、边框、背景、下划线、斜体、加粗)...

    # coding:utf-8 import patterns as patterns import xlwt import time i = 0 book = xlwt.Workbook(encodi ...

  7. Go语言bits包的位运算操作基础

    Go语言的bits包实现了预先声明的无符号类型整数的位计数和相关操作函数,所以这个包主要用来处理无符号类型整数相关的位运算操作,下面是常见的位运算操作函数: ① OnesCount函数,函数原型为:f ...

  8. Go语言excelize包-04-迭代器(行迭代器、列迭代器)

    文章目录 1. 列迭代器 1.1 垂直获取数据 1.2 遍历列操作 1.3 单列操作 1.4 列迭代示例 2. 行迭代器 2.1 获取行数据 2.2 遍历操作 2.3 单行操作 2.4 关闭数据流 2 ...

  9. Excel VBA Range单元格操作实例

    四.Range操作 4.2取得最后一个非空单元格 xlDown/xlToRight/xlToLeft/xlUp Dim ERow as Long Erow=Range("A" &a ...

最新文章

  1. 【贪心】雷达装置(ybtoj 贪心-1-2)
  2. 【算法设计与分析】03 算法及其时间复杂度
  3. python之判断一个值是不是可以被调用
  4. PowerDesigner下载安装教程
  5. JNI/NDK入门指南之JNI数据类型,描述符详解
  6. 地理信息系统软件学习:流域提取以及地图绘制(简单版)
  7. Region Proposal Network
  8. fullPage学习
  9. 【信息系统项目管理师】第十二章 项目采购管理思维导图
  10. 史上最长的介绍BI(商业智能)的干货
  11. 上层应用程序是如何访问到底层驱动程序的呢?
  12. php高性能框架phaicon,3分钟快速入门php高性能框架Phalcon
  13. html,css维护优化,网站CSS代码优化的7个原则
  14. TCP建连过程详解/160805
  15. linux tty pty 的使用
  16. 前端总线频率(FSB)及DDR内存频率详解,彻底让你明白CPU总线带宽与内存带宽匹配问题!
  17. 小程序做电商的硬伤 “正规军”入驻 草根望尘莫及
  18. 熊掌号能否撑起SEO的蓝天?
  19. virtualBox安装常见的问题
  20. [转载]一大波 Android 刘海屏来袭,全网最全适配技巧!

热门文章

  1. Mybatis plus基础入门
  2. Spring Form Tags
  3. pageoffice使用过程遇到的问题及解决方法
  4. 鸿蒙分期同系列,华为“新系统”用户破亿,P50系列再次确认,真首发鸿蒙OS!...
  5. 帝国梦醒,是时候收兵了!我命令:全体撤退
  6. vue如何过滤html标签,Vue过滤器filters使用详解
  7. mysql按照时间自动创建分区表_mysql 表分区、按时间函数分区、删除分区、自动添加表分区...
  8. 基于地理位置的订餐创意
  9. 推荐 4 个 火火火火 的开源项目
  10. Linux创建新用户(useradd与adduser用法的区别)