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中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
用Python的Flask框架结合MySQL写一个内存监控程序
Nov 07 Python
实例讲解Python中函数的调用与定义
Mar 14 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
python实现八大排序算法(2)
Sep 14 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
python交易记录整合交易类详解
Jul 03 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
对PyTorch中inplace字段的全面理解
May 22 Python
python用海龟绘图写贪吃蛇游戏
Jun 18 Python
Python实现Matplotlib,Seaborn动态数据图
May 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
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
php 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php的dl函数用法实例
2014/11/06 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
2016/03/10 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
AngularJS 视图详解及示例代码
2016/08/17 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
python迭代器与生成器详解
2016/03/10 Python
Python 内置函数complex详解
2016/10/23 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
Python文件操作函数用法实例详解
2019/12/24 Python
Python pip使用超时问题解决方案
2020/08/03 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
会话Bean的种类
2013/11/07 面试题
导购员的岗位职责
2014/02/08 职场文书
愚人节活动策划方案
2014/03/11 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL