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 办公软件办公效率的作用。

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

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

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

  1. python中xlwt的局限,Python xlwt 生成Excel和设置特定单元格不可编辑

    请看我另一篇生成Excel的文章(推荐) xlwt 这是一个供开发人员用来生成与Microsoft Excel 95到2003版兼容的电子表格文件的库. 包本身是纯Python,不依赖于标准Pytho ...

  2. Python xlrd 读取 Excel 表格基础(一):获取sheet、行、列对象,读取数据类型等

    Python xlrd 读取 Excel 表格基础 一:按行.按列读取Excel数据内容 前言: 1.获取工作簿.sheet对象 2.获取sheet表中行.列对象 3.读取sheet对象中所有数据 4 ...

  3. python xlwt操作excel

    python xlwt操作excel posted on 2018-04-18 14:46 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs ...

  4. 计算机基础知识教程excel单元格拆分,电脑内怎么将excel表格中某个单元格的内容拆分至不同单元格里...

    电脑内怎么将excel表格中某个单元格的内容拆分至不同单元格里 当我们在使用电脑的时候,可以下载excel软件来处理数据文件,那么如果想要将一个单元格中的内容拆分到不同的单元格中的话,应如何操作呢?接 ...

  5. sum多个字段的值相加_excel表格指定数据求和-怎么让EXCEL表格多个单元格里的数值相加求和...

    怎么让EXCEL表格多个单元格里的数值相加求和 如果提取2010年的数据和,可以这样 用一个笨方法吧,在年份A列后,插入一个辅助列比如说B列,用YEAR()提取A中的数据的年,然后隐藏,下面公该明白了 ...

  6. 为什么有时候双击excel表格里面的单元格的时候会跳到其它地方?

    为什么有时候双击excel表格里面的单元格的时候总会跳到其它地方? 原因:双击时鼠标在两个单元格的边框或是四个单元格的交叉点上. 解决方法:关闭"启用填充柄和单元格拖放"功能,选项 ...

  7. EXCEL中将多个单元格内容合并到一个单元格中的方法(转帖+亲自实践)

    原帖位置:EXCEL中将多个单元格内容合并到一个单元格中的方法 http://t.excelhome.net/thread-3875-1-1.html 说明:这个技巧主要用到以下2个功能 1.Offi ...

  8. Python Pandas操作Excel表格文件:创建新表格,追加数据

    前言: python操作excel表格文件的增删读写,一般需要用到的第三方库有xlwt,xlrd.xlrd负责读取excel,xlwt负责写入excel文件.这种操作方法比较繁琐,效率还不错,通俗易懂 ...

  9. python openpyxl操作Excel表格

    原创:未经允许不得转载,转载需标明出处 打算分为两个部分: 第一部分为:操作Excel表格 第二部分为:操作Excel图表 现在发布为第一部分内容 在最近的项目中的使用到了提取Android帧率日志, ...

  10. 【转】经典!python中使用xlrd、xlwt操作excel表格详解

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

最新文章

  1. U-Boot移植教程之一:U-Boot分析与启动过程
  2. Ubuntu12.04 LTS 忘记登录密码的解决方法
  3. php后端如何搭建socket服务,从php做一个简单的socket服务器流程
  4. archive for required library...
  5. Divbrush 网页Div css画板定位布局系统 v1.8
  6. 车道线识别/Opencv/传统方法
  7. MFC开发IM-第二十四篇、使用 acl 库针对 C++ 对象进行序列化及反序列编程
  8. PHP之wampserver修改根目录与默认页面
  9. jQuery补充及Django基本使用_Day18
  10. 2018 年React 将独占前端框架鳌头
  11. Jupyter Notebook Config
  12. 吸烟首先危害是会引起火灾,电子烟较好
  13. Ubuntu22.04 Python 深度学习环境配置记录
  14. 记录windows游戏编程——1
  15. ThreeJS的性能优化方面
  16. 蓝桥杯-标题:史丰收速算
  17. gmail smtp 535 5.7.8无法登陆解决
  18. latex 图、表 中英文标题
  19. 欺骗的艺术——第二部分(6)
  20. Android黄油计划之Choreographer原理解析

热门文章

  1. [打印管理器]读取样式列表失败:Invalid variant operation
  2. java jmail_JavaMail学习--使用JMail发送邮件
  3. 使用Apache FtpServer搭建FTP服务器 [FlashFXP]
  4. 配置防火墙规则实现 WSL2 访问 Windows 主机服务
  5. 用cube移植PS2手柄--HAL库
  6. Micropython——使用PS2手柄实现远程遥控
  7. gom引擎没有和账号服务器连接,GOM引擎和GEE引擎的传奇版本配置登录界面黑屏的原因和解决办法...
  8. 【零基础学JS -2】 适合编写JS的编辑器
  9. 手机PIN码解锁过程
  10. 计算机考试有python吗_计算机二级考试有python吗