python使用openpyxl操作excel总结
安装openpyxl
pip install openpyxl
简单示例
from openpyxl import Workbook #创建一个工作薄对象,也就是创建一个excel文档
wb = Workbook() #指定当前显示(活动)的sheet对象
ws = wb.active # 给A1单元格赋值
ws['A1'] = 42 # 一行添加多列数据
ws.append([1, 2, 3]) # 保存excel
wb.save("sample.xlsx")
使用openpyxl的一般流程为:创建/读取excel文件-->选择sheet对象-->对表单/cell进行操作-->保存excel
1.创建/读取excel文件
创建excel
from openpyxl import Workbook
wb = Workbook()
读取excel
from openpyxl import load_workbook
wb = load_workbook('1.xlsx')
保存excel
wb.save('filename.xlsx')
2.sheet表单操作
获取sheet
#以list方式返回excel文件所有sheet名称(->list[str,str..])
wb.sheetnames
wb.get_sheet_names()
选择sheet对象
#根据sheet名称选取
ws = wb['sheet1']
ws = wb.get_sheet_by_name('sheet1')
#选择当前显示,活动的sheet
ws = wb.active
ws = wb.get_active_sheet()
创建新的sheet
#默认插入到最后
ws = wb.create_sheet("newsheet")
#插入到最开始的位置(从0开始计算)
ws = wb.create_sheet("newsheet", 0)
复制一个sheet对象
source = wb.active
target = wb.copy_worksheet(source)
sheet常见属性
#sheet名称
sheet.title
#最大行和最大列
sheet.max_row
sheet.max_column
#行列生成器
sheet.rows #为行生成器, 里面是每一行的cell对象,由一个tuple包裹。
sheet.columns #为列生成器, 里面是每一列的cell对象,由一个tuple包裹。
可以使用list(sheet.rows)[0].value 类似方法来获取数据,或
for row in sheet.rows:
for cell in row:
print(cell.value)
来遍历值,或值生成器 sheet.values 仅遍历值
删除sheet
wb.remove(sheetobject)
del wb['sheet'] #sheetname
sheet的其它操作
#插入行,在第7行之前插入
ws.insert_rows(7)
#插入列,在第7列之前插入
ws.insert_cols(7)
#删除行列
ws.delete_rows(7)
ws.delete_cols(7)
#可以删除多个
ws.delete_cols(6, 3)
3.单元格对象
选择cell单元格对象
#根据名称访问
a1 = ws['A1'] #A列1行的单元对象
a2 = ws['a2'] #也可以小写
#cell方法访问
b2 = ws.cell(row=2, column=2)
b3 = ws.cell(3,2)
#从cell列表中返回
b3 = list(ws.rows)[2][1]
b3 = list(ws.columns)[1][2]
选择多个单元格
#切片访问
a2_b3 = ws['a2':'b3']
以行组成tuple返回tuple
((<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>), (<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>))
#单独字母与数字返回列与行的所有数据
b = ws['b'] #返回b列的所有cell对象
row1 = ws[''] #返回第1行的所有cell
#当然也能范围选择
a_e = ws['a:e'] #a-e列的cell对象
单元格属性
#返回列
cell.column
#返回行
cell.row
#返回值
cell.value
注意:如果单元格是使用的公式,则值是公式而不是计算后的值
#返回单元格格式属性
cell.number_format
默认为General格式
#单元格样式
cell.font
更改单元格值
#直接赋值
ws['a2'] = 222
ws['a2'] = 'aaa'
ws['b2'] = '=SUM(A1:A17)' #使用公式 #value属性赋值
cell.value = 222
或
ws.cell(1,2,value = 222)
移动单元格
ws.move_range("D4:F10", rows=-1, cols=2)
表示单元格D4:F10向上移动一行,右移两列。单元格将覆盖任何现有单元格。(最新版本的才会这个方法,使用pip list查看版本是否为最新)
ws.move_range("G4:H10", rows=1, cols=1, translate=True)
移动中包含公式的自动转换
合并与拆分单元格
#合并单元格,以最左上角写入数据或读取数据
ws.merge_cells('A2:D2')
#拆分单元格
ws.unmerge_cells('A2:D2')
4.格式样式设置
导入类
from openpyxl.styles import Font, colors, Alignment
Font类常见参数
font = Font(name='Calibri', #字体名字
size=11, #字体大小
bold=False, #是否加粗
italic=False, #斜体
underline='none', #下划线
color='FF000000') #颜色,可以用colors中的颜色
设置字体
t_font = Font(name='Calibri', size=24, italic=True, color=colors.RED, bold=True)
#给font属性赋值font对象即可
sheet['A1'].font = t_font
对齐方式
# 设置B1中的数据垂直居中和水平居中,除了center,还可以使用right、left
等等参数
sheet['B1'].alignment = Alignment(horizontal='center', vertical='center')
设置单元格长宽
# 第2行行高
sheet.row_dimensions[2].height = 40
# C列列宽
sheet.column_dimensions['C'].width = 30
官方文档参考:https://openpyxl.readthedocs.io/en/latest/
python使用openpyxl操作excel总结的更多相关文章
- 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表格
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 ht ...
- python库openpyxl操作excel
废话不多说,看代码,不懂的留言. from openpyxl import * class ExcelUtil: ''' 读取excel文件内容''' def create_work_book(sel ...
- python使用openpyxl操作excel
def initExcel(): file_path = "test.xlsx" file = load_workbook(file_path) table = file[&quo ...
- Python使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...
- 【转发】Python使用openpyxl读写excel文件
Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...
- python openpyxl 操作 excel
初识与安装 Openpyxl is a Python library for reading and writing Excel 2010 xlsx/xlsm/xltx/xltm files. 安装 ...
随机推荐
- 洛谷 1552 [APIO2012]派遣
题目背景 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿. 题目描述 在这个帮派里,有一名忍者被称之为Master.除了Master以外,每名忍者都有且仅有一个上级.为保密 ...
- Linxu下Yii2的POST请求被拒经历
Linxu下Yii2的POST提交被拒经历 介于对Yii2的使用,浅谈一下自己的经验,在以往的项目中我使用的框架是Yii1,由于Yii2的出现,所以极力的想使用一下它的新特性. 我的使用环境Linux ...
- drf框架接口文档
drf框架接口文档 REST framework可以自动帮助我们生成接口文档. 接口文档以网页的方式呈现. 自动接口文档能生成的是继承自APIView及其子类的视图. 一.安装依赖 pip insta ...
- Jenkins部署(基于Linux)
1.安装JDK 我不列出来了,自行百度 java -version 2.安装tomcat (1)创建目录tomcat8 (2)导入tomcat文件到tomcat8目录中并解压 (3)启动tomcat ...
- 虚拟机桥接模式下将虚拟IP设为静态IP
一:虚拟机设置桥接模式 1.进入虚拟机设置中将网络适配器设置成桥接模式,如下图 2.编辑--虚拟网络编辑器--选择桥接 3.如上图中桥接模式下的桥接到--将自动改成与本机匹配的虚拟网卡,本机虚拟网卡查 ...
- java高并发----个人学习理解汇总记录
1.首先,需要理解几个概念 1.同步(Synchronous):同步方法调用一旦开始,调用者必须等到前面的方法调用返回后,才能继续后续的行为,依次直到完成所有. 2.异步(Asynchronous): ...
- 实验吧之【因缺思汀的绕过】(group by with rollup的注入利用)
打开页面,查看源代码,发现存在source.txt(http://ctf5.shiyanbar.com/web/pcat/source.txt),如下: <?php error_reportin ...
- PHP yield代替range生成范围内的数
<?php function yieldRange($start, $limit, $step) { if ($start == $limit || $step == 0) { return $ ...
- CSS中重要的BFC
CSS中有个重要的概念BFC,搞懂BFC可以让我们理解CSS中某些原本看似诡异的地方. 简介 在解释BFC之前,先说一下文档流.我们常说的文档流其实分为定位流.浮动流.普通流三种.而普通流其实就是指B ...
- [Luogu3554] Poi2013 Triumphal arch
Description Foreseeable和拿破仑的御用建筑师让·夏格伦在玩游戏 让·夏格伦会玩一个叫“凯旋门”的游戏:现在有一棵n个节点的树,表示一个国家 1号点代表这个国家的首都 这个游戏由两 ...