欢迎光临散文网 会员登陆 & 注册

闲着没事练练python 对excel操作

2022-01-28 22:16 作者:纳鲁涛  | 我要投稿

水水专栏完成个任务

需求,如图:

输入单价和数量后自动生成总额和总额大写

原理:

1、xlwt.Workbook('')新建excel工作簿

2、xlwt.add_sheet('')新建sheet

3、sheet对象的write()方法提供在单元格输入功能

4、sheet对象的write_merge()方法提供合并并输入

注意参数为(合并起始行 ,合并结束行,合并起始列,合并结束列,输入内容,单元格风格)

5、sheet对象的merge方法提供合并方法,参数与write_merge相同

6、输入excel内置函数,xlwt提供了Formula()方法,用来解析内置方法,注意,Formula()中填入的函数语句不包括等号,目前存在的问题是部分函数不能解析,解析时报错“unknown”主要问题是excel使用的函数中有一部分是”隐藏函数“,即没有函数提示,但输入该函数可以得到预期结果。新版本excel中已经将NUMBERSTRING加入函数列表中,可能由于xlwt太老导致没有更新函数库无法解析,下一步尝试使用其他例如Openpyxl库编辑xlsx文件。


实验过程:

1、新建excel工作簿,添加sheet

2、分别设计标题文本,正文文本,数字三种字体格式

2.1单元格格式对象为xlwt.XFStuyle()

2.2字体为xlwt.Font()对象

2.3单元格对其方式为xlwt.Alignment()对象

2.4单元格边跨给是xlwt.Borders()对象

2.5配置单元格样式

将每个对象的属性配置好后,将刚才编辑的对象赋予Style对象中的几个成员变量,在write、write_merge方法中就可以在写入内容后加入style参数改变写入的格式

3、设置列宽

在sheet实例对象中有.col()方法获取列,列实例对象有.width成员变量,记录该列列宽。python中的列宽是excel中列宽数值上的256倍

代码:

多用for i in range循环,目前除了NUMBERSTRING方法别的都实现了,NUMBERSTRING方法是用来将提取的各个位的数字转换成中文大写数字,但这个函数是excel隐藏函数,在xlwt中无法解析该函数,目前没有好办法解决这个问题,有大佬可以在评论区讨论讨论


闲着没事练练python 对excel操作的评论 (共 条)

分享到微博请遵守国家法律