00:00
大家好,这是xize基础教程的第二章第三节,这节课我们来学习如何借助xize将CSV转换为Excel文档,并进行行高、列宽、副文本等设置。本节课将通过创建一个股票走势报表的例子,带大家学习一系列新的XAPI的使用。最终创建的Excel文档是这样的,C1上是通过CSV转换得到的原数据,C2是基于这些原数据生成的图表。我们先来学习第一组的三个API。有时候我们需要把数值类型的坐标索引转换为单元格坐标,就需要用到索引转单元格坐标这个API为单元格赋值时,如果有多种数据类型的值需要设置,可以使用set cell value来设置单元格的值,如果设置的值均为string类型,可以使用set string来设置字符型单元格的值。在课程目录下创建一个名为第二章第三节的目录,然后把预先准备好的CSV格式的原数据放在目录下,接着用Vs code的编辑器打开工程项目。
01:10
新建一个main do go文件声明包名称导入format标准库和X来基础库。创建main函数,通过提供的new file方法新建一个工作簿,得到F对象。调用F对象上的saves方法将工作簿保存为BOOK1DO xlxx。打开终端,运行go init初始化模块。运行go mod tidy安装包依赖。使用OS标准库打开CSV文件,接收并处理可能出现的错误。这个CSV文件是我预先下载好的微软近五年以天为单位的股票数据。打开它可以看到累计有1260行。使用defer在函数结束时关闭打开的文件。
02:03
使用CSV官方包读取文件句柄。然后调用相关的CSV函数逐行读取数据。接收并处理可能出现的异常。由于按行赋值时需要计算每行起始单元格的位置。这里我们来学习一个新的API索引,转单元格坐标。通过它来计算出起始单元格坐标。声明变量肉。用作航号技术。声明工作表明称,因为CSV中第一行是string类型的表头数据,所以这里单独处理第一行使用set she肉按行赋值。是CSV中每一行的数据。其中每个值都是string类型的。从第二行起,每行数据中包含数值类型的股票数据。我们来创建一个函数convert。
03:00
将string类型的股票数据转换为浮点型。该函数返回转换后的每一行数据和可能产生的error,遍历一行中的每一个值,并尝试将其转换为浮点型。如果转换失败,则保留原始类型。从第二行起,调用convert准备写入Excel中的数据。接收并处理可能返回的异常,使用set sheet肉进行按行赋值。读取完一行后,增加行号计数。保存代码并运行程序。然后用Excel打开,可以看到CSV的数据已经被导入到Excel中了。一共也是1260行,下面我们把首行单元格中英文的表头改为中文的。这里学习本节课的第二个API set value。指定工作表名称、单元格坐标和单元格的值。
04:04
把A1单元格的值改为日期。对于文本类型的值,还可以用set cell string来为单元格赋值,使用它将be单元格的值修改为开盘价,其余五列的表头用按行赋值方法来设置。这里指定单元格起始坐标为C1,将C1到G1单元格的值分别设置为最高价、最低价、收盘价。收盘调价和成交量。保存代码并运行程序,用Excel打开生成的工作簿,可以看到第一行的标题行已经设置好了。接下来我们学习第二组关于列操作的三个API,设置列的样式、宽度和可见性,也就是是否隐藏列。为从B到F列中的全部单元格设置,保留两位小数的数字格式。
05:04
首先使用之前我们学习过的new style API来创建一个一的样式。指定number format为二。来创建保留两位小数的数字格式样式。然后使用ST column style来为B到F列设置样式。接收并检查返回的error,保存代码并运行程序,然后用Excel打开,可以看到B到F列中的数字格式已经设置好了。下面我们为成交量这一列设置千分位逗号分格的数字格式。同样是用new style API来创建一个STYLE2的样式,指定number format为三。检查A,再次用ST stylele来为G列设置样式。接收并检查返回的error。保存并运行程序,用Excel打开,这列的数字格式已经设置好了,但由于列宽较窄,需要调整列宽才能看到效果。下面我们就用set column y来调整A到G列的宽度。
06:13
这里把列宽设置为11。保存代码并运行程序,再次用Excel打开,可以看到从A列到这一列的宽度已经设置好了。假设我们不需要展示F列的收盘调价这一列数据,可以用s column visible设置F列的可见性为force。保存代码,运行程序,打开生成的文档,可以看到F列已经被隐藏。接着我们来学习第三组的三个API,插入行设置单元格、副文本格式和设置行高度。下面我们为表格增加一个标题行。使用ins row函数,在第一行前面插入一个空白行。接收并处理可能返回的异常,保存并运行程序,打开生成的Excel文档,可以看到已经插入了一个空白行。
07:07
接着,我们使用前面学习过的wordcel函数将A1到G1单元格合并保存并运行程序,打开生成的文档。接下来,我们在这个合并的单元格中设置一个包含不同颜色文字和换行样式的副文本格式。使用set text来创建副文本格式。第一个参数是工作表名称,第二个参数是单元格坐标,第三个参数是副文本格式。使用rich text run创建副文本片段。Text为文本内容,使用杠R、杠N在单元格内换行。使用font参数设置副文本片段的样式,这里设置为蓝色加粗20号times new Roman体。然后再创建一个text run片段。
08:01
内容为近五年数据,并使用微软雅黑字体。保存并运行程序。打开生成的Excel文档,可以看到此时副文本并没有换行效果,这是因为还需要设置单元格的换行样式。接着使用new style创建一个样式STYLE3。在属性里声明自动换行为true。水平方向和垂直方向均为居中对齐。然后调用set cell style函数,将刚刚创建的STYLE3样式绑定到单元格A1上。保存并运行程序,打开生成的Excel文档,可以看到副文本格式已经设置好了,但由于行高过低,遮挡了单元格的值。下面我们使用SAR来调节行的高度。
09:03
把第一行的高度设置为60,保存后执行代码,再打开生成的Excel文档,可以看到行高已经设置好了。下面我们来学习第四组的三个API,设置超链接、新建工作表和设置默认工作表。首先使用set cell value6、在一单元格设置一个文本类型的值,数据来源。然后为这个单元格设置超链接。使用set cell help link函数为单元格设置超链接,第一个参数是工作表名称,第二个参数是单元格坐标,第三个参数是链接地址,第四个参数是超链接的类型。external代表外部链接。保存并运行程序。打开生成的文档,可以看到超链接已经设置好了。下面我们为这个超链接单元格添加一个蓝色文字和下划线样式。
10:05
使用new style函数创建一个新的样式STYLE4。使用font设置字体颜色,声明underline,属性为single,设置单线下划线。然后调用set style函数,把刚刚创建的样式绑定到一单元格上,保存并运行程序。用Excel打开生成的文档,可以看到超链接单元格的样式也已经设置好了。接着使用new street API来创建一个名为走势图的工作表,得到新创建工作表的索引sheet index。然后使用set active sheet函数传入工作表索引she index,设置默认工作表,保存并运行程序。打开生成的文档,可以看到已经在工作簿中新建了一张工作表。现在我们已经把CSV中的数据导入到了Excel文档中,并且对数据表做了格式化处理。下面我们基于这些数据创建图表。
11:08
我们现在走势图工作表上创建一张历史收盘价的图表,使用a chart函数,在图表参数里将图表类型设置为折线图。数据源中系列值引用SHEET1上一二单元格的值,Categories水平分类引用SHEET1上A3到A1261区域的日期。直区域引用SHIFT1藏E3到E1261区域的股票收盘价数据。X scale参数图表宽度,横向拉伸1.6倍,Y scale参数设置纵向拉伸1.5倍。添加开头属性,设置图表标题legend字段中none为true,关闭图例项。
12:00
保存代码,运行程序,用Excel打开生成的文档,可以看到图表生成好了,默认会开启数据标记形状。如果我们想要关闭它,在图表参数里声明mark参数symbol属性为nu即可。保存并重新运行程序,再次打开生成的文档,此时数据标记形状已经关闭了。这张图表的横坐标点过于密集,我们来调整一下。在图表参数中,声明横坐标轴格式,声明tick label SK属性为六十来指定标签的间隔单位。保存代码并运行程序。打开文档可以看到横坐标已经每隔60天显示一个标签了。最后我们在收盘价图表下方插入成交量的动态图表,复制刚才编写的创建收盘价图表的代码。修改图表插入位置为A24单元格。然后设置系列值对应的水平分类和值区域,引用range修改图表标题为成交量。
13:05
设置图表类型为二维面积图,保存代码并运行程序,使用Excel打开生成的工作簿,可以看到ex已经为我们创建了一张成交量图表。好了,本节课就到这里了,如果你喜欢这个视频,欢迎关注、点赞和评论,谢谢大家,我们下节课再见。
我来说两句