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通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
Python中functools模块函数解析
Mar 12 Python
python中实现k-means聚类算法详解
Nov 11 Python
在IPython中进行Python程序执行时间的测量方法
Nov 01 Python
Python语言检测模块langid和langdetect的使用实例
Feb 19 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
Pytorch Tensor的索引与切片例子
Aug 18 Python
Python中BeautifuSoup库的用法使用详解
Nov 15 Python
python在不同条件下的输入与输出
Feb 13 Python
Python控制台实现交互式环境执行
Jun 09 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 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
thinkphp学习笔记之多表查询
2014/07/28 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
2016/05/16 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
非常不错的功能强大代码简单的管理菜单美化版
2008/07/09 Javascript
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
JavaScript 动态三角函数实例详解
2017/01/08 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
2017/02/07 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
vue实现扫码功能
2020/01/17 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
介绍Python中内置的itertools模块
2015/04/29 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
python写日志文件操作类与应用示例
2019/07/01 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
程序员岗位职责
2013/11/11 职场文书
成考报名单位证明范本
2014/01/16 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
联片教研活动总结
2014/07/01 职场文书
化工实习心得体会
2014/09/09 职场文书