xlwt:python的写excel模块
最近工作时碰到了将数据导出,生成一个excel表,对其中的部分数据进行统计,并给其中部分符合条件的数据添加对应的背景颜色的功能需求,于是乎,对Python中写excel的模块xlwt研究了一下,在工作过程中发现,想要实现数据统计的话,xlwt并没有直接的公式,而是给了一个把内容以公式的格式写入excel的方法,所以又对excel的公式什么的研究了一下,也算是终于实现了想要的功能,现把觉得用处比较大的记录一下,以便以后用到的时候可以直接捡起来用。
xlwt的安装
很简单,可以直接使用pip安装
pip install xlwt
xlwt的导入
很简单,直接import即可
import xlwt
最简单的例子(xltw使用的坐标和excel表的坐标不同,excel有两种坐标表示方式,但都是从1开始,例如左上角第一个单元格为A1(字母为横坐标,数字为纵坐标)或者R1C1(R1表示纵坐标,C1表示横坐标),而xlwt模块中,坐标的数字则是从0开始左上角第一个单元格的坐标为(0,0),其中的一个数字为纵坐标,第二个数字为横坐标)
import xlwt
xls = xlwt.Workbook(encoding="utf-8") # 创建一个xls对象,用来保存对excel表的操作
sheet1 = xls.add_sheet('成绩表', cell_overwrite_ok=True) # 给 xls 添加一张‘成绩表’的表格
sheet1.write(0, 0, '学生姓名') # 在坐标为0,0的单元格内添加内容'学生姓名'
sheet1.write(0, 1, '成绩') # 在坐标为1,1的单元格内添加内容'成绩'
sheet1.write(0, 2, '评语') # 在坐标为0,2的单元格内添加内容'评语'
xls.save('测试表') # 将xls保存为'测试表'
即可生成如下图如所示的excel表
设置字体属性
import xlwt
workbook = xlwt.Workbook(encoding = 'utf-8')
worksheet = workbook.add_sheet('测试表')
font = xlwt.Font() # 创建一个font对象,用来保存对字体进行的操作
font.name = '微软雅黑' # 将字体设置为'微软雅黑'
font.bold = True # 设置字体加粗
font.underline = True # 设置字体加下划线
font.italic = True # 设置字体倾斜
style = xlwt.XFStyle() # 创建一个style对象,用来保存excel的样式
style.font = font # 将字体信息保存到style对象中
worksheet.write(0, 0, '无字体格式')
worksheet.write(1, 0, '有字体格式', style) # 在坐标为1,0的单元格内添加内容'有字体格式',并带有字体属性
workbook.save('测试表.xlsx')
生成如下图如所示的excel表
设置背景图案
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('测试表')
pattern = xlwt.Pattern() # 创建一个pattern对象,用来保存单元格背景的样式
pattern.pattern = 0x01 # 设置单元格的背景图案样式(0x01-0x12共18种样式)
pattern.pattern_fore_colour = xlwt.Style.colour_map['yellow'] # 设置单元格的背景颜色
style = xlwt.XFStyle()
style.pattern = pattern # 将背景颜色信息保存到styke对象中
worksheet.write(0, 0, '有背景颜色', style) # 在坐标为0,0的单元格内添加内容'有背景',并带有背景颜色
workbook.save('测试表.xlsx')
生成如下图如所示的excel表
合并单元格
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('测试表')
worksheet.write_merge(0, 0, 0, 1, '合并两列') # 将坐标为0,0和0,1的两列合并,并添加内容'合并两列'
worksheet.write_merge(1, 2, 0, 0, '合并两行') # 将坐标为1,0和2,0的两行合并,并添加内容'合并两行'
worksheet.write_merge(3, 5, 0, 2, '合并三行三列') # 将纵坐标为3-5横坐标为0-2的三行三列合并,并添加内容'合并三行三列'
workbook.save('测试表.xlsx')
生成如下图如所示的excel表
设置单元格的列宽(xlwt中没有专门的设置行高的方法,可通过设置单元格的字号调整行高)(xlwt中列宽的单位为默认字体(10号字)的0的宽度的1/256)
import xlwt
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('测试表')
first_col=sheet.col(0) # 获得测试表中横坐标为0的列
first_col.width=256*20 # 将或的的列的宽设置为256*20个单位,即20个10号字的0的宽度
book.save('测试表.xlsx')
生成如下图如所示的excel表
在单元格内插入公式
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('测试表')
worksheet.write(0, 0, 1)
worksheet.write(0, 1, 2)
worksheet.write(0, 2, xlwt.Formula('A1*B1')) # 在坐标为0,2的单元格单元格内添加一个公式,公式内容为‘=A1*B1’,显示的值为A1与B1两单元格的值得积:2
worksheet.write(0, 3, xlwt.Formula('SUM(A1,B1)')) # 在坐标为0,3的单元格单元格内添加一个公式,公式内容为‘=SUM(A1,B1)’,显示的值为A1与B1两单元格的值得和:3
workbook.save('测试表.xlsx')
生成如下图如所示的excel表
另附部分excel公式(好吧,我承认是我在工作中用到的)
统计数量(COUNTIF(区域,条件))
例子1:统计1出现的次数
例子2:统计不是1的值出现的次数
乘积之和(SUMPRODUCT(数组1,数组2, ··· ···)):
例子:计算数组1和数组2的对应位置的数的乘积的和
条件求和(SUMIF(条件区域,判断条件,运算区域)(若省略运算区域,则条件区域即是运算区域))
例子:在A1-A6范围内值为1的单元格,在B1-B6范围内对应的单元格的值的和
多条件求和(SUMIFS(运算区域,条件区域1,判断条件1,条件区域2,判断条件2,··· ···))
例子:在A1-A6范围内值为1,在B1-B6范围内值为1的单元格,在C1-C6范围内对应的单元格的值的和
、
xlwt:python的写excel模块的更多相关文章
- python 写 excel 模块 : xlwt
主要来自:[ python中使用xlrd.xlwt操作excel表格详解 ] 为了方便阅读, 我将原文两个模块拆分为两篇博文: [ python 读 excel 模块: xlrd ] [ python ...
- Python读写操作Excel模块_xlrd_xlwt_xlutils
Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...
- python xlsxwriter写excel并操作各种格式属性
# -*- coding: utf-8 -*- import xlsxwriter workbook = xlsxwriter.Workbook('test.xlsx') worksheet = wo ...
- Python xlwt 写Excel相关操作记录
1.安装xlwt pip install xlwt 2.写Excel必要的几步 import xlwt book = xlwt.Workbook() #创建一个workbook,无编码设置编码book ...
- python 读 excel 模块: xlrd
主要来自:[ python中使用xlrd.xlwt操作excel表格详解 ] 为了方便阅读, 我将原文两个模块拆分为两篇博文: [ python 读 excel 模块: xlrd ] [ python ...
- python 3 操作 excel
看到一篇很好的python读写excel方式的对比文章: 用Python读写Excel文件 关于其他版本的excel,可以通过他提供的链接教程进行学习. XlsxWriter: https://git ...
- Python xlwt模块写Excel问题集合
1.数字转换成汉字 数据库查询返回结果为多元组,在写入Excel需要判断,数据库查询结果是否为数字,为数字的话需要将其转换成对应的汉字,此时元组不可修改,所以需要将返回结果修改成列表.实现可以在数据库 ...
- python中使用xlrd读excel使用xlwt写excel
原文地址 :http://www.bugingcode.com/blog/python_xlrd_read_excel_xlwt_write_excel.html 在数据分析和运营的过程中,有非常多的 ...
- 使用Python xlwt写excel文件
如果需要使用Python写Excel文件,首先下载或者安装xlwt. pip install xlwt 下面的这些demo应该可以帮助开发者快速上手使用xlwt写Excel文件: 创建工作簿(work ...
随机推荐
- yum安装Ceph指定Jewel版本
前言 通过yum安装指定的rpm包,这个一般是 yum --showduplicates list ceph | expand ,然后去通过yum安装指定的版本即可,这个在hammer下是没有问题的, ...
- sql实现通过父级id查询所有的子集
通过sql实现传入父级id查询出所有的子集 最近刚好有个业务需要这样实现个功能,就是在点击查询列表详情的时候只会传入父级id,而详情得渲染出所有子集,那么做法有很多,可以直接通过代码递归查询去实现, ...
- 去年去阿里面试,被问到ArrayList和LinkedList,我是这样回答的!
前言 在一开始基础面的时候,很多面试官可能会问List集合一些基础知识,比如: ArrayList默认大小是多少,是如何扩容的? ArrayList和LinkedList的底层数据结构是什么? Arr ...
- ccpc2020长春站F题 Strange Memory
dsu on tree 题目链接 点我跳转 题目大意 给定一棵包含 \(n\) 个节点的树,每个节点有个权值 \(a_i\) 求\(∑_{i=1}^n∑_{j=i+1}^n[a_i⊕a_j=a_{lc ...
- mac中怎么完成移动硬盘分区这个操作
移动硬盘在出厂时只有一个区,不方便我们存储和查阅文件,移动硬盘分区可以防止硬盘发生错误,以免造成资料丢失,也可以防止产生无用文件. 移动硬盘基本上都是用Windows系统进行分区的,但是现在很多人使用 ...
- 【移动自动化】【二】Appium
实施自动化需要的工具 adb Android控制工具,获取获取Android各种数据和控制,Appium会调起adb命令去执行Android设备 adb命令参考 https://www.cnblogs ...
- 最全总结 | 聊聊 Python 办公自动化之 Word(下)
1. 前言 关于 Word 文档的读写,前面两篇文章分别进行了一次全面的总结 最全总结 | 聊聊 Python 办公自动化之 Word(上) 最全总结 | 聊聊 Python 办公自动化之 Word( ...
- 简化的鸿蒙WiFi接口,仅需几行代码,简单易用!
使用鸿蒙原始WiFI API接口进行编程,整个过程稍显繁琐,为此我们对鸿蒙原始WiFi API接口做了一层封装,形成了一套更简单易用的接口. 简化后的API接口 STA模式 // 连接WiFi热点,并 ...
- C语言讲义——函数
为实现特定目的而编写的一段可被调用的代码 简单地讲:函数就是一组语句,取了个名字 别名:子例程(routine)/方法(Method,一般面向对象的语言使用这个叫法) 函数的组成部分 以主函数为例: ...
- Eclipse中get/set方法自动生成
代码中点击右键(快捷键Ctrl+Alt+S) ->Source ->Generate Getters and Setters... ->全选(或选择需要生成的字段/方法) 动图: 静 ...