openpyxl操作excel
【转】
openpyxl库可以读写xlsx格式的文件,对于xls旧格式的文件只能用xlrd读,xlwt写来完成了。
python有很多模块都是用来操作excel的,比如xlrd,xlwt,pyExcelerator。用着很方便,但是问题是,只能支持到 excel2003。虽然一般的应用其实足够了,但是如果遇到了导出大量数据(超过65535条)的需求时,excel2003就不够用了。所以我就只好 去找一个能支持excel2007的模块,google了一下,发现了这个openpyxl。
创建一个工作簿
wb = workbook()
加载已存在excel文件
filePath = "/data/alic/demo.xlsx"
wb = load_workbook(filename=filePath)
选中sheet
# 选择默认的sheet
ws = wb.active # 通过索引加载sheet index从0开始
ws = wb.worksheets[index] # 通过sheet名加载 感觉有问题,中文?
ws = wb.get_sheet_by_name()
# 这个没有问题
ws = wb["name"]
创建sheet
#默认插在工作簿末尾
ws = wb.create_sheet()
# or
# 插入在工作簿的指定位置位置 index从0开始
ws = wb.create_sheet(index)
更改sheet的名字
# 新建默认的话 sheet0 sheet1 ...
ws.title = "hello"
获取sheet的名称
sheet_name = wb.get_sheet_names()
print sheet_name
# or
for sheet in wb:
print sheet.title
单元格操作
# 获取一个单元格的value
value = ws['B2']
# or
value = ws.cell('B2')
# or 非常推荐 遍历都很方便
value = ws.cell(row=1,column=2) #获取多个单元格
cells = ws['A1':'E4'] #为一个单元格赋值
ws['B2'] = "alic"
# or
ws.cell('B2') = "hello"
# or 非常推荐 遍历都很方便
ws.cell(row=1,column=2) = "value" # 遍历多个单元格
for row in ws.iter_rows('A1:D2'):
for cell in row:
print cell
获取当前工作表的已有数据的对象
# 所有行
ws.rows # 所有列
ws.columns
获取当前工作表的数据长度与宽度
row_length = len(ws.rows)
cloumn_length = len(ws.columns)
# 推荐 centOS上面的会报错
row-length = len(list(ws.rows))
cloumn_length = len(list(ws.rows))
保存文件
# 注意要是加载进来的路径与保存的路径一致文件将会被覆盖
wb.save(path) # 也可以将文件作为模板保存 as_template默认为False
wb.save('document_template.xltx', as_template=True)
简单的样式处理
# 文本对齐方式
align = Alignment(horizontal='center', vertical='center')
ws.cell(row=deng_lu_taskRow, column=index + 3).alignment = align # 字体大小
font = Font(size=10)
ws.cell(row=taskRow, column=column).font = font
openpyxl操作excel的更多相关文章
- python openpyxl 操作 excel
初识与安装 Openpyxl is a Python library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files. 安装 ...
- python用openpyxl操作excel
python操作excel方法 1)自身有Win32 COM操作office但讲不清楚,可能不支持夸平台,linux是否能用不清楚,其他有专业处理模块,如下 2)xlrd:(读excel)表,xlrd ...
- python通过openpyxl操作excel
python 对Excel操作常用的主要有xlwt.xlrd.openpyxl ,前者xlwt主要适合于对后缀为xls比较进行写入,而openpyxl主要是针对于Excel 2007 以上版本进行操作 ...
- 用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中
现代生活中,我们很难不与excel表打交道,excel表有着易学易用的优点,只是当表中数据量很大,我们又需要从其他表册中复制粘贴一些数据(比如身份证号)的时候,我们会越来越倦怠,毕竟我们不是机器,没法 ...
- python使用openpyxl操作excel总结
安装openpyxl pip install openpyxl 简单示例 from openpyxl import Workbook #创建一个工作薄对象,也就是创建一个excel文档 wb = Wo ...
- Python使用openpyxl操作excel表格
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 ht ...
- python库openpyxl操作excel
废话不多说,看代码,不懂的留言. from openpyxl import * class ExcelUtil: ''' 读取excel文件内容''' def create_work_book(sel ...
- Python学习笔记_使用openpyxl操作Excel,在同一个文件里复制某一个sheet
应用场景:定制一个Excel模板文件,其中定义了一个模板Sheet,以此模板文件里的模板sheet为样例,制作报表,里面有不止一个模板样例Sheet 一.软件环境: 1.OS:Win10 64位 2. ...
- 利用Python openpyxl操作Excel
from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = ...
随机推荐
- ZOJ 3811 Untrusted Patrol【并查集】
题目大意:给一个无向图,有些点有装监视器记录第一次到达该点的位置,问是否存在一条路径使得监视器以给定的顺序响起,并且经过所有点 思路:牡丹江网络赛的题,当时想了种并查集的做法,通神写完程序WA了几发, ...
- Linux(2):基础命令
linux 的规则: 1. linux 命令行组成结构:如下 [root@neo ~]# [用户名@主机名 当前工作路径]# ~ 用户的家目录 2. linux系统命令操作语法的格式(命令的样子): ...
- 约分差束 例题 ZOJ 2770 火烧连营
题目来源:ZOJ Monthly, October 2006, ZOJ2770题目描述:大家都知道,三国时期,蜀国刘备被吴国大都督陆逊打败了.刘备失败的原因是刘备的错误决策.他把军队分成几十个大营,每 ...
- FusionCharts for Flex 如何更改图表数据
FusionCharts allows to change chart data and re-render the chart, after it has loaded on the user’s ...
- 下载数据到Excel,工具类
使用反射将model数据下载到Excel中 package test.upload.utils; import java.lang.reflect.Method; import java.math.B ...
- 【APUE】进程间通信之共享存储(mmap函数)
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝.对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只 ...
- HTML的DIV如何实现垂直居中
外部的DIV必须有如下代码 display:table-cell; vertical-align:middle; 这样可以保证里面的东西,无论是DIV还是文本都可以垂直居中
- Node.js - 断言
什么是断言? 程序中的断言是什么意思,让我们带着疑问一步步探索 断言即我们相信程序某个特定点布尔表达式为真 举个例子就是: 我相信你是对的,然后让别人判断一下你是对的或错的,最后我得到结果. 好了,进 ...
- angular react vue 浏览器兼容情况汇总
一.逻辑层 框架 (1)angular Angular早在1.3版本就抛弃了对ie8的支持. (2)react React 早在0.14.x 版本就抛弃了对ie8的支持. (3)vue Vue就没打算 ...
- The data property "dialogVisble" is already declared as a prop. Use prop default value instead报错原因
vue中使用props传递数据就不能在子组件的data中用同样的名字(比如dialogVisble)了,否则会报错.解决方法直接去掉data中的相同名字改为其他的.