00:00
大家好,这是X基础教程的第二章第六节,这节课我们来学习使用X来读取Excel文档,读取工作簿、工作表、计算公式等操作。在第二章第二节课中,我们创建过一个学生成绩统计表的工作簿。那么本节课我们就用xize来读取那个工作簿的数据,带大家学习X中12个API的使用。我们先来学习第一组的三个API,打开带有密码保护的工作簿,获取工作表列表和获取默认工作表索引。先在课程目录下创建一个名为第二章第六节的目录。把学生成绩统计表这个工作簿放在目录下,先来打开看一下这个工作簿。该工作簿中包含了两张工作表,分别是成绩单和统计图。使用Vs code的编辑器打开工程,新建一个main do go、源码文件、声明包名称导入format、标准库和基础库。
01:03
创建man函数,通过XS提供的open file方法打开工作簿bookone.xlxx。检查并处理可能产生的错误。使用differ,在main函数return之前关闭工作簿。打开终端,在终端中运行init初始化模块,运行go teddy安装包依赖。下面我们来学习如何打开带有密码保护的工作簿。先为Excel文档设置打开密码。密码设置为password。对于这样加密的Excel文档,在使用X提供的open file函数打开时,在options中指定password为打开密码即可。接着,我们学习如何读取工作表列表。通过get sheet list可以获取工作表、索引和名称。
02:02
这里把工作表、索引和名称输出保存代码,在终端中运行程序,可以看到已经按顺序输出工作表、索引和名称了。如果想获取活动工作表的名称,先调用get active sheet index得到活动工作表索引。将其作为下标,在工作表列表里查找对应的名称。输出活动工作表名称,保存代码并运行程序,可以看到已经读取了活动工作表名称。接下来我们学习本节课第二组的三个API。读取合并单元格,在工作表中搜索以及获取单元格的值,通过X提供的get me cell函数获取活动工作表上的合并单元格。接收并检查可能产生的异常,得到mer cell变量。便利sales。
03:01
输出每个合并单元格区域的起始坐标、结束坐标与合并单元格的值。保存代码并运行程序,可以看到工作表中的四个合并单元格已经被正确读取了。如果想在工作表中搜索给定值对应的单元格坐标,可以通过such sheet API,第一个参数是工作表名称,第二个参数是要搜索的值,接收并检查可能产生的异常。便利搜索结果search result。这里我们用逗号连接并输出搜索结果坐标。保存代码并执行程序,可以看到搜索到了工作表中值为75的两个单元格。此外,Search sheet还支持通过正则表达式进行搜索修改,调用search函数时的第二个参数为正则表达式。并指定开启正则搜索模式,搜索工作表中与七开头的单元格值所对应的坐标,将搜索结果输出,保存代码,在终端中运行程序。
04:09
可以看到搜索结果中全部符合条件的单元格坐标,然后我们通过get Rose函数按行获取活动工作表中全部单元格的值。接收并检查可能出现的异常,得到Rose变量,它是一个二维数组。按行存出每个单元格的值,遍历Rose得到每行单元格的数据。Rose,遍历Rose变量将得到每个单元格的值cell。这里我们输出每个单元格的值cell。在每行结束后输出一个换行符,保存代码后,在终端里运行程序,可以看到已经读取到了每个单元格的值。下面我们来学习本节课第三组的三个API单元格公式,计算获取批注和获取列的宽度。我们注意到K4到K9区域单元格由于设置了公式,在没有计算缓存的情况下没有读到单元格的值。下面我们来学习使用X对单元格公式做求值计算。首先需要准备单元格坐标,在遍历行时数组下标,而遍历每一行上单元格时,取数组下标C,根据R和C判断并计算单元格的坐标,利用在之前课程学过的索引转单元格坐标函数计算公式单元格的坐标。
05:29
先把这个坐标输出,看一下保存代码并运行程序,可以看到公式区域的坐标已经计算好了。接着使用coal value函数传入工作表名称和刚刚计算好的单元格坐标来计算单元格的值,接收可能产生的异常保存代码并运行程序可以看到单元格公式的结果已经计算出来了。接着调用get comment函数获取工作簿中的批注,得到由工作表名称和批注数组构成的map便利得到工作表名称sheet name和每个工作表上的批注列表comments,然后在便利comments得到每个批注。
06:09
输出工作表明称,批注作者和批注内容。保存代码并运行程序,可以看到已经读取到了工作表中的批注,然后我们通过get columns API来获取列宽。参数依次是工作表名称和列名,接收并检查可能产生的异常。这里读取并输出A列的宽度,保存代码,然后运行程序,可以看到已经读出了A列的宽度。下面再来读取一下G列的宽度,再次调用get columns函数,指定列名为G,输出宽度Y。保存代码并执行程序,可以看到程序输出了这一列的宽度。接下来我们学习本节课第四组的三个API,获取行高,读取图片以及工作簿的默认字体。
07:04
调用X提供的get row hit函数来获取行高,第一个参数是工作表名称,第二个参数是行号。检查可能产生的异常。输出第一行的高度hit。保存代码并运行程序,可以看到程序输出了第一行的高度。使用get picture函数可以获取工作簿中的图片调用参数,分别是工作表名称和插入图片时的单元格坐标。它将返回三个值,分别是图片的名称、字节、数组格式的图片内容以及error。检查error,然后输出图片名称和以字节为单位的大小保存代码并运行程序,可以看到已经读取到了工作簿中的图片。最后通过get default font函数可以读取工作簿的默认字体设置。将默认字体输出,保存代码,然后在终端中执行程序,可以看到这个工作簿的默认字体是calibury。
08:06
好了,本节课就到这里,如果你喜欢这个视频,欢迎关注点赞和评论,谢谢大家,我们下节课再见。
我来说两句