Go-Excelize API源码阅读(四十一)——GetCellRichText

news2025/1/16 1:43:44

Go-Excelize API源码阅读(四十一)——GetCellRichText

开源摘星计划(WeOpen Star) 是由腾源会 2022 年推出的全新项目,旨在为开源人提供成长激励,为开源项目提供成长支持,助力开发者更好地了解开源,更快地跨越鸿沟,参与到开源的具体贡献与实践中。

不管你是开源萌新,还是希望更深度参与开源贡献的老兵,跟随“开源摘星计划”开启你的开源之旅,从一篇学习笔记、到一段代码的提交,不断挖掘自己的潜能,最终成长为开源社区的“闪亮之星”。

我们将同你一起,探索更多的可能性!

项目地址: WeOpen-Star:https://github.com/weopenprojects/WeOpen-Star

一、Go-Excelize简介

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。使用本类库要求使用的 Go 语言为 1.15 或更高版本。

二、GetCellRichText

func (f *File) GetCellRichText(sheet, cell string) ([]RichTextRun, error)

根据给定的工作表、单元格坐标获取指定单元格的富文本格式。

废话少说,直接上源代码:

func getCellRichText(si *xlsxSI) (runs []RichTextRun) {
	for _, v := range si.R {
		run := RichTextRun{
			Text: v.T.Val,
		}
		if v.RPr != nil {
			run.Font = newFont(v.RPr)
		}
		runs = append(runs, run)
	}
	return
}

参数si是xlsxSI类型:

xlsxSI(字符串项)是共享字符串表中单个字符串的表示。如果字符串只是一个简单的字符串,并在单元格一级应用了格式化,那么字符串项(si)应该包含一个用于表达字符串的单一文本元素。然而,如果单元格中的字符串更加复杂——即在字符级别应用了格式化(那么字符串项应包含多个富文本运行,它们共同用来表达字符串)。

遍历si.R,这是一个xlsxR类型的切片,xlsxR表示富文本,即带有格式化的字符串。
在这里插入图片描述
获取每一个xlsxR对象,然后新建一个run变量,其是RichTextRun结构体,RichTextRun直接映射富文本的设置。将v.t.val赋给Text成员。

if v.RPr != nil {
	run.Font = newFont(v.RPr)
}

然后是第二部分,我们可以了解这是当v的RPr属性存在时,给run的Font成员赋一个newFont对象,传过去的参数就是v.RPr。
在这里插入图片描述
newFont通过给定的run属性为富文本创建字体格式。

返回值是runs []RichTextRun,我们将si.R中的所有成员处理成为run然后append到返回值runs里面。

结语

这是Excelize API阅读的第四十一篇,鉴于本人技术水平有限,如有错误,烦请指出斧正!感谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70178.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

加固技术护城河,比亚迪商用车加速领跑全球电动化进程

在10月召开的德国汉诺威国际交通运输博览会上,比亚迪首次发布全新刀片电池客车底盘技术平台。 随后的11月,比亚迪首款基于全新刀片电池客车底盘技术平台的新车型B12A03重磅亮相第四届LTA-UITP新加坡国际交通大会暨展览会。 据悉,B12A03是一…

Java 基础(继承)

继承基础1. 继承的特点2. super关键字3. 继承中变量访问特点(就近原则)4. 继承中成员方法访问特点5. 继承中构造访问特点为什么子类中所有构造方法默认都会访问父类无参构造方法。如果父类中没有无参构造6. 重写概述应用注意事项方法重写和重载有什么区别…

ssm的校园单车自行车租赁系统|租车系统计算机专业毕业论文java毕业设计开题报告

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 《ssm的校园单车租赁系统》该项目采用技术:jsp springmvcspringmybatis cssjs等相关技术,前端页面使用了EasyUI框架&#…

【Redis】分布式锁基础

1. 集群下的线程并发安全问题 当项目形成集群时,每个 JVM 有一个锁监视器,这些锁监视器彼此间不互通,因此会出现集群下的线程并发安全问题,如下图所示: 2. 分布式锁 分布式锁是解决集群下的线程安全问题的方案&#…

Google Earth Engine(GEE)——image.select(...).rgbToHsv is not a function

本错误涵盖了好多错误,主要的原因就是函数不明确,不知道如何使用,以及函数的参数的设定,所以这里大家要先去看函数,另外,最主要的问题就是影像集合和影像要区分开,否则就会出现xxx is nor a function。这里我们用要注意!!! 提示: Line 9: image.select(...).rgbTo…

YApi跨域插件cross-request无法使用的解决方案

cross-request遇到的问题 最近在使用cross-request插件会收到一些报错信息: Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details. 以上信息是说Google推出了Man…

ADI的DSP开发软件:CCES软件的使用说明(很早期写的一点心得)

CCES 是 ADI 最新的 DSP 开发环境,全称是 Cross Core Embedded Studio,我从 2012 年的1.0.1 版开始使用,也曾经写过一个非常详细的软件安装文档,现在来详细的说一说 CCES 软件的使用操作。下面是我列出来的标题,一个一…

点成分享 | 为什么动物细胞培养大都需要二氧化碳培养箱

在进行动物细胞体外培养的过程中,培养条件苛刻,仅在环境因素方面除了要有严格的无菌环境、适合的温度、渗透压、相对湿度等,维持细胞周围的气体环境和pH稳定也十分重要。 动物细胞的体外培养需要理想的气体环境和适宜的pH环境。众所周知&…

Python中的type和object详解

这篇博客主要描述Python的新风格对象(new-style objects)&#xff0c;如下&#xff1a; <type type>和<type object>分别是什么&#xff1f;用户自定义的类和实例之间是怎么联系的&#xff1f;它们和内置类型又是怎么联系的&#xff1f;什么是元类(metaclasses)&a…

npm安装慢 ,卡在sill idealTree buildDeps不动

先说结论&#xff1a;node的默认镜像是国外的&#xff0c;修改镜像为国内地址。 报错截图&#xff1a; Failed to check for updates&#xff0c;开始以为是版本问题&#xff0c;并没有理会&#xff0c;直接创建项目&#xff0c;结果卡在了sill idealTree buildDeps&#xff08…

有关于torch.autograd.grad

torch.autograd模块给用户提供了一个自定义求导的接口。torch.autograd.grad可以手动地将loss对某部分参数进行梯度求导&#xff0c;特别适用于debug和观测。 笔者经常使用这个接口用于观测模型优化出现问题时&#xff0c;梯度值是否出现异常&#xff1b;以及用于代替tensorbo…

检验基础的 JavaScript 面试题

1. 下面代码的输出是什么&#xff1f; function sayHi() {console.log(name);console.log(age);var name "Lydia";let age 21; }sayHi(); A: Lydia 和 undefined B: Lydia 和 ReferenceError C: ReferenceError 和 21 D: undefined 和 ReferenceError 答案: D…

12月编程语言排行榜公布!一起来看变化!

2022年迎来了最后一个月&#xff0c;我们可以看到&#xff0c;在这一年中编程语言起起伏伏&#xff0c;有的语言始终炙手可热&#xff0c;而有的语言却逐渐“没落”… 日前&#xff0c;全球知名TIOBE编程语言社区发布了12月编程语言排行榜&#xff0c;有哪些新变化&#xff1f…

一篇博客搞定深度学习基本概念与反向传播

目录 深度学习的发展过程 深度学习的步骤 定义Neural NetWork 全前向连接 softmax介绍 定义loss函数 定义优化器选择最优参数optimization 反向传播Backpropagation 深度学习介绍 反向传播视频 深度学习的发展过程 perceptron(liner model)感知机——线性模型 perc…

ESP32入门基础之资源管理

文章目录1 ESP32-DevKitC V4&#xff08;ESP32-WROVER-E&IE&#xff09;板载资源2 FreeRTOS任务内存使用监控1 ESP32-DevKitC V4&#xff08;ESP32-WROVER-E&IE&#xff09;板载资源 ESP32-DevKitC V4 入门指南 esp32-devkitc开发板参数对比 在工程中使用函数查询可用…

HTML学生个人网站作业设计:基于HTML+CSS+JavaScript设计多用途的图文展示博客HTML模板(16页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

IPv4/IPv6协议分析 实验报告

实验名称&#xff1a; IPv4/IPv6协议分析实验 一、实验预习 1、实验目的 利用抓包工具&#xff08;Wireshark/Windump/Sniffer&#xff09;抓取IPv4/IPv6分组&#xff0c;以进一步熟悉和理解IPv4/IPv6格式规范与IP协议的工作原理 2、实验内容…

HBase Windows 安装

一、写在前面 在安装HBase之前&#xff0c;我们需要先安装JDK和Hadoop&#xff0c;具体JDK和Hadoop的安装我前面已经做过了&#xff0c;需要的话&#xff0c;请看我的另一篇博客&#xff1a;Hadoop Windows 安装 还是那句话&#xff0c;在安装HBase之前&#xff0c;我们需要搞清…

IDEA 一些实用性的设置(Doing)

文章目录设置鼠标滑轮修改字体大小设置自动导包和删包功能设置显示代码行号和方法间的间隔符设置忽略大小写提示设置文件多行显示tabs设置默认字体、字体大小和行间距设置鼠标滑轮修改字体大小 file——setting&#xff08;快捷键&#xff1a;CtrlAltS&#xff09;——editor—…

ELK(搜索与分析技术栈)

一、介绍 ELK其实并不是一款软件&#xff0c;而是一整套解决方案&#xff0c;是三个软件产品的首字母缩写&#xff0c;Elasticsearch&#xff0c;Logstash 和 Kibana。这三款软件都是开源软件&#xff0c;通常是配合使用&#xff0c;而且又先后归于 Elastic.co 公司名下&#…