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中的JSON使用
Apr 28 Python
Python实现的彩票机选器实例
Jun 17 Python
python分割列表(list)的方法示例
May 07 Python
Python解决八皇后问题示例
Apr 22 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
Jul 17 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
搞清楚 Python traceback的具体使用方法
May 13 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
tornado+celery的简单使用详解
Dec 21 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
python使用建议与技巧分享(二)
Aug 17 Python
详解Python流程控制语句
Oct 28 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
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
Laravel (Lumen) 解决JWT-Auth刷新token的问题
2019/10/24 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
js转html实体的方法
2016/09/27 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
微信小程序实现折叠面板
2018/01/31 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
webpack之引入图片的实现及问题
2018/10/08 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
快速一键生成Python爬虫请求头
2021/03/04 Python
业务主管岗位职责
2013/11/20 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
家长反馈意见及建议
2015/06/03 职场文书
工作证明格式范文
2015/06/15 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
php 原生分页
2021/04/01 PHP
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server