如果只是数据处理业务,那么读取和写入单元格的操作已经足够支撑 大部分业务了。
所有操作省去了前面基本流程的框架代码。
单个单元格的写入与读取
cell_a1 = ws.range( 'A1' )
cell_a1.value = '123'
此时写入的字符串123在获取value打印时依然是数字,类型也是float。
除了A1这种常见的Excel标识,还可以用数字来表示,为在列上数值保持一致,从1开始计算,以元组形式使用。
前面的A1单元格等同于
cell_0_0 = ws.range((1, 1))
此时打印两者的值是一致的,也是相等的,但是对象id不太一样,也不能算作同一个变量,只是操作的excel位置是一致的。这里的数值是先表示行,再表示列号,和字母表示的是相反的。
excel中开启此功能需要在选项卡里点击文件-》最下面的选项-》公式,在使用公式栏目中勾选R1C1引用样式。确定后可以看出数据表的列名变成了数字。数字更适合列超过26以后的变化趋势。
多单元格的读取与写入
xlwings库可以通过读取列表,通过对单个单元格操作,进行多维度的写入
一个维度的:
两个维度的:
还可以竖过来写入:
竖过来单行和多行是一个方法,不再重复演示。通过增加链条options(transose=True)实现转置效果。
写入的时候是以提供的最左上角的单元格为起始点的,即使给了一个区域,数据宽度超出区域也会写到外面去。
多行区域写入时必须要保持数据数量完整,不能一行6个,一行5个这种。
读取一个区域的数据
区域的写法就是常见的Excel写公式的单元格范围写法,也可以和单个单元格那样,用两个数字元组框起来作为一个范围。
当你选中的范围里有的没有数据时,会显示None