python操作xlsx文件的包openpyxl实例


Posted in Python onMay 03, 2018

Python扩展库openpyxl,可以操作07版以上的xlsx文件。可以创建工作簿、选择活动工作表、写入单元格数据,设置单元格字体颜色、边框样式,合并单元格,设置单元格背景等等。

需要增加可以颜色进入包安装目录的

your_pthon_path/site-packages/openpyxl/styles

修改colors.py文件下的

COLOR_INDEX = (
 '00000000', '00FFFFFF', '00FF0000', '0000FF00', '000000FF', #0-4
 '00FFFF00', '00FF00FF', '0000FFFF', '00000000', '00FFFFFF', #5-9
 '00FF0000', '0000FF00', '000000FF', '00FFFF00', '00FF00FF', #10-14
 '0000FFFF', '00800000', '00008000', '00000080', '00808000', #15-19
 '00800080', '00008080', '00C0C0C0', '00808080', '009999FF', #20-24
 '00993366', '00FFFFCC', '00CCFFFF', '00660066', '00FF8080', #25-29
 '000066CC', '00CCCCFF', '00000080', '00FF00FF', '00FFFF00', #30-34
 '0000FFFF', '00800080', '00800000', '00008080', '000000FF', #35-39
 '0000CCFF', '00CCFFFF', '00CCFFCC', '00FFFF99', '0099CCFF', #40-44
 '00FF99CC', '00CC99FF', '00FFCC99', '003366FF', '0033CCCC', #45-49
 '0099CC00', '00FFCC00', '00FF9900', '00FF6600', '00666699', #50-54
 '00969696', '00003366', '00339966', '00003300', '00333300', #55-59
 '00993300', '00993366', '00333399', '00333333', 'System Foreground', 'System Background' #60-64
 '00D2B48C', '0087CEFA', '0000BFFF' #自己添加的
)

以00+16进制RGB颜色代码的形式即可

自己写的一个生成xlsx文件的代码:

#!/usr/bin/env python
#-*- coding: utf-8 -*-
import openpyxl
from openpyxl import Workbook
from openpyxl.styles import colors,Font,Border,Side,PatternFill,Alignment
wb = Workbook() #创建工作簿
ws = wb.active #激活工作簿
ws.merge_cells('C3:E3') #合并单元格
ws.merge_cells('C4:E4')
ws.merge_cells('C20:I20')
ws.merge_cells('C21:I21')
left, right, top, bottom = [Side(style='thin', color='000000')]*4 #设置单元格边框属性
border = Border(left=left, right=right, top=top, bottom=bottom) #设置单元格边框格式
fill1 = PatternFill(start_color = 'FFFF00', end_color = 'FFFF00', fill_type = 'solid') #设置单元格背景色
fill2 = PatternFill(start_color = 'D2B48C', end_color = 'D2B48C', fill_type = 'solid')
fill3 = PatternFill(start_color = '00BFFF', end_color = '00BFFF', fill_type = 'solid')
fill4 = PatternFill(start_color = 'FF0000', end_color = 'FF0000', fill_type = 'solid')
align1 = Alignment(horizontal='center', vertical='center') #设置文本对齐
align2 = Alignment(horizontal='left', vertical='center')
for i in range(3,22):
 for col in 'CDEFGHIJK':
 ws[col+str(i)].border = border #给每个单元格设置相应的格式 
 #ws[col+str(3)].fill = fill1
 #ws[col+str(i)].alignment = align
for col in 'CDEFGHIJK':
 ws[col+str(3)].fill = fill1
 ws[col+str(20)].fill = fill3
 ws[col+str(21)].fill = fill4
 for i in range(4,20):
 ws[col+str(i)].fill = fill2
for col in 'CDEFGHIJK':
 ws[col+str(3)].alignment = align1
for i in range(4,22):
 for col in 'CDE':
 ws[col+str(i)].alignment = align2
for col in 'CDEFGHIJK':
 ws[col+str(3)] = 'test1' #单元格赋值
for i in range(3,22):
 for col in 'CDE':
 if i in range(5,20) and col == 'C':
  pass
 else:
  ws[col+str(i)] = 'test2'
for i in range(4,20):
 for col in 'EFGHIJK':
 ws[col+str(i)] = 50
for i in range(20,22):
 for col in 'JK':
 ws[col+str(i)] = 100
wb.save('test.xlsx') #保存文件

单元格字体等也可以使用相应的模块去设置。

以上这篇python操作xlsx文件的包openpyxl实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用HTMLParser解析html实例
Feb 08 Python
python使用super()出现错误解决办法
Aug 14 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
实例讲解python中的序列化知识点
Oct 08 Python
对python tkinter窗口弹出置顶的方法详解
Jun 14 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
Sep 24 Python
Python 解码Base64 得到码流格式文本实例
Jan 09 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 Python
Python中常用的高阶函数实例详解
Feb 21 Python
Python %r和%s区别代码实例解析
Apr 03 Python
Python实现视频中添加音频工具详解
Dec 06 Python
对Python字符串中的换行符和制表符介绍
May 03 #Python
pandas数据处理基础之筛选指定行或者指定列的数据
May 03 #Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 #Python
Python 解决中文写入Excel时抛异常的问题
May 03 #Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 #Python
python更改已存在excel文件的方法
May 03 #Python
python写入已存在的excel数据实例
May 03 #Python
You might like
文件上传程序的全部源码
2006/10/09 PHP
php2html php生成静态页函数
2008/12/08 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
Python查看微信撤回消息代码
2018/06/07 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
2019/08/31 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
教师节感恩老师演讲稿
2014/08/28 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
Java的Object类的九种方法
2022/04/13 Java/Android