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 相关文章推荐
使用Node.js和Socket.IO扩展Django的实时处理功能
Apr 20 Python
Python读写unicode文件的方法
Jul 10 Python
Python实现的tcp端口检测操作示例
Jul 24 Python
对Python中plt的画图函数详解
Nov 07 Python
python 字符串只保留汉字的方法
Nov 16 Python
对python3新增的byte类型详解
Dec 04 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
python安装本地whl的实例步骤
Oct 12 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
如何用python免费看美剧
Aug 11 Python
appium+python自动化配置(adk、jdk、node.js)
Nov 17 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
利用js调用后台php进行数据处理原码
2006/10/09 PHP
一周学会PHP(视频)Http下载
2006/12/12 PHP
一个基于PDO的数据库操作类
2011/03/24 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
2013/06/18 PHP
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
python opencv之SURF算法示例
2018/02/24 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
python3 配置logging日志类的操作
2020/04/08 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
火灾现场处置方案
2014/05/28 职场文书
初中成绩单评语
2014/12/29 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
天气温馨提示语
2015/07/14 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS