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找出9个连续的空闲端口
Feb 01 Python
EM算法的python实现的方法步骤
Jan 02 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
Python3实现定时任务的四种方式
Jun 03 Python
Django使用中间键实现csrf认证详解
Jul 22 Python
微信公众号token验证失败解决方案
Jul 22 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
Python @property及getter setter原理详解
Mar 31 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 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 版获取重定向后的地址(代码)
2013/06/26 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
提高网站信任度的技巧
2008/10/17 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
javascript禁用Tab键脚本实例
2013/11/22 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
jquery获取元素索引值index()示例
2014/02/13 Javascript
原生javascript模仿win8等待提示圆圈进度条
2014/04/24 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
vue路由拦截器和请求拦截器知识点总结
2019/11/08 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
Python生成随机数的方法
2014/01/14 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
趣味运动会活动方案
2014/02/12 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android