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的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
python实现单线程多任务非阻塞TCP服务端
Jun 13 Python
使用pandas的DataFrame的plot方法绘制图像的实例
May 24 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
Python range与enumerate函数区别解析
Feb 28 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
关于python的缩进规则的知识点详解
Jun 22 Python
Matplotlib配色之Colormap详解
Jan 05 Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 Python
利用Python多线程实现图片下载器
Mar 25 Python
浅析Python OpenCV三种滤镜效果
Apr 11 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
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
一些mootools的学习资源
2010/02/07 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python备份文件的脚本
2008/08/11 Python
Python实现比较两个列表(list)范围
2015/06/12 Python
Python实现各种排序算法的代码示例总结
2015/12/11 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
Python callable()函数用法实例分析
2018/03/17 Python
python根据时间获取周数代码实例
2019/09/30 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
新闻学毕业生自荐信
2013/11/15 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
茶花女读书笔记
2015/06/29 职场文书
爱护环境建议书
2015/09/14 职场文书
简历自我评价范文
2019/04/24 职场文书
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python