600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Python xlwt 操作 excel 表格基础(一):单元格写入 合并 插入位图等

Python xlwt 操作 excel 表格基础(一):单元格写入 合并 插入位图等

时间:2021-04-09 12:16:27

相关推荐

Python xlwt  操作 excel 表格基础(一):单元格写入 合并 插入位图等

Python xlwt 模块编辑Excle 表格——基础篇

前言:1、建立工作簿,增加sheet表对象2、单元格操作3、插入位图4、获取sheet表对象属性结尾:【Python与Office】专栏

前言:

xlwt 模块简介:

Python 操作 Excel 表格的模块有很多,主要有:

1、xlrd:读取 xls 格式Excel文件数据;

2、xlwt:将数据写入 xls 格式Excel文件;

3、openpyxl:读取、写入 xlsx 格式Excel文件;

4、pandas:通过 xlrd 与 xlwt 模块实现xls 格式Excel文件的读写操作;

5、win32com:获取 Excel 应用接口,实现Excel 文件的读写。

Python操作Excel表格的方法有很多,都是工具没必要每个都学。xlrd 和 xlwt 两个模块用的人比较多,接下来的几篇博客也是重点介绍 xlrd 与 xlwt 两个模块对Excel表格的操作方法。

本篇博客主要介绍Python xlwt 模块将数据写入Excel表格的一些基础操作,包括:

1. 建立工作簿,增加sheet表;

2. 单元格写入数据、单元格合并;

3. 插入位图;

4. 获取sheet表对象属性。

1、建立工作簿,增加sheet表对象

用 xlwt模块 将数据写入Excel 表格,有个固定操作流程:

建立工作簿对象——新建sheet表——将数据写入——保存文件

注:xlwt 模块是Python 的第三方模块,安装 xlwt 模块,命令行输入:pip install xlwt

代码:

# 导入模块import xlwt# 新建工作簿work_book = xlwt.Workbook()"__init__(self, encoding='ascii', style_compression=0):"# 默认编码 ASCII# 增加sheet表work_sheet = work_book.add_sheet('Test')# work_sheet = work_book.add_sheet('Test',cell_overwrite_ok=True)"add_sheet(self, sheetname, cell_overwrite_ok=False):"# sheetname 增加的单元格名称# cell_overwrite_ok 默认False:重写单元格报错"Exception: Attempt to overwrite cell: sheetname='Test' rowx=0 colx=0"# 如果设置为True则重写单元格不报错# 保存文件work_book.save('Test.xls')

add_sheet方法中的cell_overwrite_ok 形参默认值为False,表示:当之前单元格内容已写入内容,再在相同单元格写入内容时,会抛出:

(Exception: Attempt to overwrite cell: sheetname=‘Test’ rowx=x colx=x ) 错误。

True:不会提示上错误,会直接改写原单元格数据。

2、单元格操作

写入数据(write):

# 单元格操作work_sheet.write(0,0,'Hello Word')# work_sheet.write(0,0,'Hello Word 2')"write(self, r, c, label="", style=Style.default_style)"# 形参说明:r 行,c 列, label 值,style 单元格格式

将列表数据写入一个单元格(write_rich_text):

# 将列表数据写入一个单元格test_list = [str(i) for i in range(5)]work_sheet.write_rich_text(1,0,test_list)"write_rich_text(self, r, c, rich_text_list, style=Style.default_style):"# 形参说明:r 行,c 列,rich_text_list 列表或元组

合并单元格(merge):

# 合并单元格work_sheet.merge(2,3,0,3)"merge(self, r1, r2, c1, c2, style=Style.default_style):"# 形参说明:r1 起始行,r2 合并终止行,c1 起始列 c2 合并终止列

合并单元格并写入数据(write_merge):

# 合并单元格并写入work_sheet.write_merge(4,4,0,3,'合并单元格数据')"write_merge(self, r1, r2, c1, c2, label="", style=Style.default_style):"# 形参说明参考合并单元格方法形参说明

3、插入位图

# 插入位图work_sheet.insert_bitmap('01.bmp',5,0)"insert_bitmap(self, filename, row, col, x = 0, y = 0, scale_x = 1, scale_y = 1):"

图像:

insert_bitmap(self, filename, row, col, x = 0, y = 0, scale_x = 1,scale_y = 1):

形参说明:

filename:文件名称;row:行,col:列;x,y:设定距单元格的x,y 距离;scale_x ,scale_y:缩放比例。

work_sheet.insert_bitmap('01.bmp',5,8,x=50,y=50,scale_x=0.5,scale_y=0.5)

注:图片必须为bmp位图,且需为24位真色彩,会PhotoShop的可以自己调整一下图片。

完整代码:

# 导入模块import xlwt# 新建工作簿work_book = xlwt.Workbook()# 增加sheet表work_sheet = work_book.add_sheet('Test')# 单元格操作work_sheet.write(0,0,'Hello Word')# 将列表数据写入一个单元格test_list = [str(i) for i in range(5)]work_sheet.write_rich_text(1,0,test_list)# 合并单元格work_sheet.merge(2,3,0,3)# 合并单元格并写入work_sheet.write_merge(4,4,0,3,'合并单元格数据')# 插入位图work_sheet.insert_bitmap('01.bmp',5,0)work_sheet.insert_bitmap('01.bmp',5,8,x=50,y=50,scale_x=0.5,scale_y=0.5)# 保存文件work_book.save('Test.xls')

Excel文件截图:

4、获取sheet表对象属性

注:以下代码都是在上面代码基础上写的。

获取、设置当前sheet表对象名称:

# 获取当前sheet表对象名称print(work_sheet.get_name())# 设置当前sheet表名称work_sheet.set_name('Test_rename')

获取sheet对象的父对象(获取工作中的sheet表的Excel文件对象):

print(work_book)print(work_sheet.get_parent())# 打印结果:# <xlwt.Workbook.Workbook object at 0x0000000002F69B88># <xlwt.Workbook.Workbook object at 0x0000000002F69B88>

获取所有当前sheet对象中的有效行、列对象:

# 获取所有当前sheet对象中的有效行对象print(work_sheet.get_rows())# 打印结果'''{0: <xlwt.Row.Row object at 0x000000000B0E1048>, 1: <xlwt.Row.Row object at 0x000000000B0E11A8>,2: <xlwt.Row.Row object at 0x000000000B0E1308>,3: <xlwt.Row.Row object at 0x000000000B0E1468>, 4: <xlwt.Row.Row object at 0x000000000B0E15C8>}'''# 获取所有当前sheet对象中的有效列对象print(work_sheet.get_cols())# 打印结果# {0: <xlwt.Column.Column object at 0x000000000B0D4448>}

注:xlwt 模块中对列对象的获取方法有些问题!如上面的 get_cols() 方法只获取到一个列对象。

获取合并单元格对象的起始合并位置信息:

print(work_sheet.get_merged_ranges())# 打印结果# [(2, 3, 0, 3), (4, 4, 0, 3)]

结尾:

以上就是本篇全部内容,感谢阅读。

下一篇博客内容为 Excel 文件 sheet 表 常用显示设置、窗口冻结、表格保护、默认打印样式 等内容。

【Python与Office】专栏

该专栏会对 Python 的第三方模块,如:xlwt,xlrd,python-docx等,操作 Office 办公软件(Word Excel PPT)的方法进行详细讲解。同时也会搭配一些实例演练,一方面强化知识点的理解与运用,另一方面也希望能起到,引导读者进行思考:如何用 python 提高 offic 办公软件办公效率的作用。

感兴趣的朋友,可以点个关注收藏。如在博客中遇到任何问题或想法,可留言或私信。

创作不易,你的支持是我最大的动力,感谢 !

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。