实例02—openpyxl 模块Excel批量插入九九乘法表(两种方案)

需求:

正常教学需要,给孩子们打印九九乘法表,用Word或者Excel编辑好打印出来,但是很麻烦,能不能自动化的打印出来呢?这时Python处理Excel文件的模块openpyxl派上用场了。

用到的知识点:

Python的循环,列表操作,字符串格式化,wb对象基本操作,ws.cell()方法,ws.append()方法等,本节实例可以大部分复习基础篇的知识点哦,请认真操作,稍有不明白,请跳往基础篇目查看。

1、极简代码如下:

from openpyxl import Workbook wb = Workbook() ws = wb.active ws.title = '九九乘法表' #循环遍历生成 for i in range(1,10): for j in range(1,i 1): ws.cell(i 1,j,'%dx%d=-' % (j,i,i*j))#核心代码,从第2行开始写,第一行留做标题 #保存文件 wb.save('九九乘法表.xlsx')

这里的核心代码,从第2行开始写,写的个数是由j决定的,执行代码及结果如下:

python excel指定列添加数据 python处理Excel实战进阶篇day02(1)

代码

python excel指定列添加数据 python处理Excel实战进阶篇day02(2)

2、普通代码如下:

#前面省略喽,加上标题,主要的是把第一行合并、插入数据,再设置对齐和字体等 #忘了,返回复习哦^_^ #插入标题、合并单元格 ws.merge_cells('A1:I1') ws['A1'] = '九九乘法表Excel版——黑板客爱技术制作' #设置字体、颜色、对齐方式 cell = ws['A1'] cell.font = Font(name='微软雅黑',size=18,bold=True,color=colors.RED) cell.alignment = Alignment(horizontal='center',vertical='center')

效果如下:

python excel指定列添加数据 python处理Excel实战进阶篇day02(3)

3、pro版本代码如下:

from openpyxl import Workbook from openpyxl.styles import Font,Alignment,PatternFill,colors wb = Workbook() ws = wb.create_sheet('九九表') #插入标题、合并单元格 ws.merge_cells('A1:I1') ws['A1'] = '九九乘法表Excel版——黑板客爱技术制作' cell = ws['A1'] cell.font = Font(name='微软雅黑',size=18,bold=True,color=colors.RED) cell.alignment = Alignment(horizontal='center',vertical='center') #循环遍历方法1 for i in range(1,10): for j in range(1,i 1): ws.cell(i 1,j,'%dx%d=%d'%(j,i,j*i))#填充数据 ws.cell(i 1,j).fill = PatternFill(patternType='solid',fgColor=colors.BLUE)#填充背景 ws.cell(i 1,j).font = Font(name='宋体',size=15,color=colors.WHITE,bold=True)#填充字体 #保存文件 wb.save('九九乘法表pro.xlsx')

结果展示:(当然美化在Excel中就可以,Python是用来自动化的,这里主要是再次复习前面的基础知识

python excel指定列添加数据 python处理Excel实战进阶篇day02(4)

4、pro_plus版本代码如下:

这里换一种方案和思路进行,我们可以利用ws.append()方法,参数是可遍历的对象,一行一行插入,第一行插入标题,第二行插入一个数据,第三行插入两个数据……直到最后一行。

由于篇幅关系,核心代码如下:

for x in range(1,10): tmp = [] for y in range(1,x 1): value = '%dx%d=%d'%(y,x,x*y) tmp.append(value) ws.append(tmp)

思路是:每一行建一个临时列表tmp,每一行的数据循环插入列表tmp,插入完毕后,再把列表append到表格的每行中。

,