目录

1 Excel表格

1.1 表格述语

1.2 表格示例

2 python打开及读取表格内容

2.1打开Excel表格并获取表格名称

2.2 通过sheet名称获取表格

2.3 获取表格的尺寸大小(几行几列数据)

2.4 获取表格内某个格子的数据

2.4.1 sheet["A1"]方式

2.4.2 sheet.cell(row=, column=)方式

2.5 获取某个格子的行数、列数、坐标

2.6 获取一系列格子

2.6.1 sheet[]方式

2.6.2 .iter_rows()方式

2.6.3 sheet.rows()

3 python向excel中写入某些内容

3.1 修改表格中的内容

3.1.1 向某个格子中写入内容并保存

3.1.2 .append():向表格中插入行数据

3.1.3 在 python 中使用 excel 函数公式

3.1.4 .insert_cols()和.insert_rows():插入空行和空列

3.1.5 .delete_rows()和.delete_cols():删除行和列

3.1.6 .move_range():移动格子

3.1.7 .create_sheet():创建新的 sheet 表格

3.1.8 .remove():删除某个 sheet 表

3.1.9 .copy_worksheet():复制一个 sheet 表到另外一张 excel 表

3.1.10 sheet.title:修改 sheet 表的名称

3.1.11 创建新的 excel 表格文件

3.1.12 sheet.freeze_panes:冻结窗口

4 批量调整字体和样式

4.1 修改字体样式

4.2 获取表格中格子的字体样式

4.3 设置对齐样式

4.4 设置边框样式

4.5 设置填充样式

4.6 设置行高和列宽

4.7 合并单元格


Excel表格

1.1 表格述语

1.2 表格示例

python打开及读取表格内容

2.1打开Excel表格并获取表格名称

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
print(workbook.sheetnames)

2.2 通过sheet名称获取表格

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook["1班"]
print(sheet)

2.3 获取表格的尺寸大小(几行几列数据)

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook["1班"]
print(sheet.dimensions)

2.4 获取表格内某个格子的数据

2.4.1 sheet["A1"]方式

from openpyxl import load_workbook
"""
workbook.active 打开激活的表格;
sheet["A1"] 获取 A1 格子的数据;
cell.value 获取格子中的值;
"""
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
cell1 = sheet["D2"]
cell2 = sheet["A7"]
print(cell1.value, cell2.value)

2.4.2 sheet.cell(row=, column=)方式

from openpyxl import load_workbookworkbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
cell1 = sheet.cell(row = 2,column = 4)
cell2 = sheet.cell(row = 7,column = 1)
print(cell1.value, cell2.value)

2.5 获取某个格子的行数、列数、坐标

from openpyxl import load_workbook
"""
.row 获取某个格子的行数;
.columns 获取某个格子的列数;
.corordinate 获取某个格子的坐标;
"""
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
cell1 = sheet["D2"]
cell2 = sheet["A7"]
print(cell1.value, cell1.row, cell1.column, cell1.coordinate)
print(cell2.value, cell2.row, cell2.column, cell2.coordinate)

2.6 获取一系列格子

2.6.1 sheet[]方式

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
# 获取 A2:X2 区域的值
cell = sheet["A2:X2"]
print(cell)
for i in cell:for j in i:print(j.value)

特别地:如果我们只想获取“D列”,或者获取“D-F列”,可以采取如下方式:

# 获取 D 列的数据
print(sheet["D"])
# 获取 D,E,F 三列的数据
print(sheet["D:F"])
# 只获取第 5 行的数据
print(sheet[5])

2.6.2 .iter_rows()方式

有.iter_rows()方式,肯定也会有.iter_cols()方式,只不过一个是按行读取,一个是按列读取。
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
# 按行获取值
for i in sheet.iter_rows(min_row=3, max_row=5, min_col=4, max_col=7):for j in i:print(j.value)
# 按列获取值
for i in sheet.iter_cols(min_row=3, max_row=5, min_col=4, max_col=7):for j in i:print(j.value)

2.6.3 sheet.rows()

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
for i in sheet.rows:print(i)

pythonexcel中写入某些内容

3.1 修改表格中的内容

3.1.1 向某个格子中写入内容并保存

"""
注意:我们将“D2”单元格的数据改为了“总成绩”,并另存为了“new_score.xlsx”文件。 如果我们保存的时候,不修改表名,相当于直接修改源文件;
"""
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
sheet["D2"] = "总成绩"     # 或 cell = sheet["D2"] cell.value = "总成绩"
workbook.save(filename = "new_score.xlsx")

3.1.2 .append():向表格中插入行数据

.append()方式:会在表格已有的数据后面,增添这些数(按行插入)

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
data = [["14770", "张三", "高147班", "320", "70", "688"],["14771", "李四", "高147班", "315", "71", "700"],["14772", "王五", "高147班", "300", "72", "713"],
]
for row in data:sheet.append(row)
workbook.save(filename = "E:/new_score1.xlsx")

3.1.3  python 中使用 excel 函数公式

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
sheet["C3"] = "高1班"
for i in range(3,53):sheet["D{}".format(i)] = '=COUNTIF(D{}:D{}, ">300")'.format(i,i)print(sheet["D{}".format(i)])
workbook.save(filename = "E:/new_score2.xlsx")

当然,我们可以使用如下操作查看一下python支持的“excel函数公式”。
from openpyxl.utils import FORMULAE
print(FORMULAE)

3.1.4 .insert_cols().insert_rows():插入空行和空列

.insert_cols(idx=数字编号, amount=要插入的列数),插入的位置是在 idx 列数的左侧插入;
.insert_rows(idx=数字编号, amount=要插入的行数),插入的行数是在 idx 行数的下方插入;
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
sheet.insert_cols(idx=4,amount=2)
sheet.insert_rows(idx=5,amount=4)
workbook.save(filename = "E:/new_score3.xlsx")

3.1.5 .delete_rows().delete_cols():删除行和列

.delete_rows(idx=数字编号, amount=要删除的行数)
.delete_cols(idx=数字编号, amount=要删除的列数)
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
# 删除第2列,第2行
sheet.delete_cols(idx=2)
sheet.delete_rows(idx=2)
workbook.save(filename = "E:/new_score4.xlsx")

3.1.6 .move_range():移动格子

.move_range("数据区域",rows=,cols=):正整数为向下或向右、负整数为向左或向上

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
# 向左移动一列,向下移动一行
sheet.move_range("D3:X7",rows=1,cols=-1)
workbook.save(filename = "E:/new_score5.xlsx")

3.1.7 .create_sheet():创建新的 sheet 表格

.create_sheet("新的 sheet 名"):创建一个新的sheet表

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
print('原:', workbook.sheetnames)
sheet = workbook.active
workbook.create_sheet("4班")
print('现:', workbook.sheetnames)
workbook.save(filename = "E:/new_score6.xlsx")

3.1.8 .remove():删除某个 sheet

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
print('原:', workbook.sheetnames)
sheet = workbook.active
sheet = workbook['3班']
workbook.remove(sheet)
print('现:', workbook.sheetnames)
workbook.save(filename = "E:/new_score6.xlsx")

3.1.9 .copy_worksheet():复制一个 sheet 表到另外一张 excel

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
sheet = workbook['1班']
workbook.copy_worksheet(sheet)
workbook.save(filename = "E:/new_score7.xlsx")

3.1.10 sheet.title:修改 sheet 表的名称

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
sheet.title = "147班"
print(sheet)
workbook.save(filename = "E:/new_score8.xlsx")

3.1.11 创建新的 excel 表格文件

from openpyxl import Workbook
workbook = Workbook()
sheet = workbook.active
sheet.title = "表格 1"
workbook.save(filename = "新建的 excel 表格")

3.1.12 sheet.freeze_panes:冻结窗口

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
sheet.freeze_panes = "B7"
workbook.save(filename = "E:/new_score9.xlsx")

批量调整字体和样式

4.1 修改字体样式

Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
from openpyxl.styles import Font
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
cell = sheet["A1"]
font = Font(name="微软雅黑",size=20,bold=True,italic=True,color="FF0000")
cell.font = font
workbook.save(filename = "E:/new_score11.xlsx")

4.2 获取表格中格子的字体样式

from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
cell = sheet["A2"]
font = cell.font
print(font.name, font.size, font.bold, font.italic, font.color)

4.3 设置对齐样式

Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)
水平对齐:‘distributed',‘justify',‘center',‘leftfill', ‘centerContinuous',‘right,‘general';
垂直对齐:‘bottom',‘distributed',‘justify',‘center',‘top';
from openpyxl.styles import Alignment
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
cell = sheet["A1"]
alignment = Alignment(horizontal="center",vertical="center",text_rotation=45,wrap_text=True)
cell.alignment = alignment
workbook.save(filename = "E:/new_score13.xlsx")

4.4 设置边框样式

Side(style=边线样式,color=边线颜色)
Border(left=左边线样式,right=右边线样式,top=上边线样式,bottom=下边线样式)
style 参数的种类: 'double, 'mediumDashDotDot', 'slantDashDot', 'dashDotDot','dotted','hair','mediumDashed, 'dashed', 'dashDot', 'thin', 'mediumDashDot','medium', 'thick'
from openpyxl.styles import Side,Border
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
cell = sheet["D6"]
side1 = Side(style="thin",color="FF0000")
side2 = Side(style="thick",color="FFFF0000")
border = Border(left=side1,right=side1,top=side2,bottom=side2)
cell.border = border
workbook.save(filename = "E:/new_score14.xlsx")

4.5 设置填充样式

PatternFill(fill_type=填充样式,fgColor=填充颜色)
GradientFill(stop=(渐变颜色 1,渐变颜色 2……))
from openpyxl.styles import PatternFill,GradientFill
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
cell_b9 = sheet["D3"]
pattern_fill = PatternFill(fill_type="solid",fgColor="99ccff")
cell_b9.fill = pattern_fill
cell_b10 = sheet["D5"]
gradient_fill = GradientFill(stop=("FFFFFF","99ccff","000000"))
cell_b10.fill = gradient_fill
workbook.save(filename = "E:/new_score15.xlsx")

4.6 设置行高和列宽

.row_dimensions[行编号].height = 行高
.column_dimensions[列编号].width = 列宽
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
# 设置第 1 行的高度
sheet.row_dimensions[1].height = 50
# 设置 B 列的宽度
sheet.column_dimensions["B"].width = 20
workbook.save(filename = "E:/new_score16.xlsx")

4.7 合并单元格

.merge_cells(待合并的格子编号)
.merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
from openpyxl import load_workbook
workbook = load_workbook(filename = 'E:/score.xlsx')
sheet = workbook.active
sheet.merge_cells("A3:B53")
# 或 sheet.merge_cells(start_row=7,start_column=1,end_row=8,end_column=3)
workbook.save(filename = "E:/new_score17.xlsx")

python使用openpyxl操作excel相关推荐

  1. 【Python基础】python使用openpyxl操作excel

    1.openpyxl库介绍 openpyxl最好用的python操作excel表格库,不接受反驳: openpyxl官网链接:openpyxl官网 openpyxl只支持[.xlsx / .xlsm ...

  2. python使用openpyxl操作excel总结

    安装openpyxl pip install openpyxl 简单示例 from openpyxl import Workbook#创建一个工作薄对象,也就是创建一个excel文档 wb = Wor ...

  3. 用python与openpyxl操作excel(wps excel与office excel均可使用)

    介绍一个强大的库openpyxl这个库非常易于使用,不论是wps的excel还是office的wps都可以使用,下面来介绍一下基本操作 1.从已经存在的excel中读取数据 #filename为要读取 ...

  4. python openpyxl 操作excel xlrd.biffh.XLRDError: Excel xlsx file; not supported错误修改

    python xlrd/openpyxl 操作excel xlrd.biffh.XLRDError: Excel xlsx file; not supported错误修改 代码: 错误: excel读 ...

  5. python openpyxl 操作excel ,使用 conditional_formatting,insert_rows

    场景 python 使用 openpyxl 操作 excel 对于简单的格式来说还是挺方便的,但是对于复杂的格式,操作没有手动来的简单,如果对于复杂的格式也不是用python来做的.对于一个原有的报表 ...

  6. 包无法安装_详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel

    详细教程 | 安装Python编程环境以及使用OpenpyXl操作Excel 注意:下列教程为 Windows7 64位:Windows 10有部分步骤有差异,请参考使用! 01 下载Python程序 ...

  7. Python办公自动化之 openpyxl 操作 Excel

    今天给大家分享一篇用 openpyxl 操作 Excel 的 Python 办公自动化文章.5分钟就能掌握- 各种数据需要导入Excel?多个Excel要合并?目前,Python处理Excel文件有很 ...

  8. Python读取和操作Excel(.xlsx)文件

    Python读取和操作Excel(.xlsx)文件 使用openpyxl库来控制excel文件(即.xlsx为后缀的文件).这里介绍一下excel数据的结构. 打开excel文件后生成一个workbo ...

  9. python使用openpyxl处理excel表格数据

    python使用openpyxl处理excel表格数据 前言 一.安装openpyxl包 二.读取excel数据 1. 获取excel表格的页码 2. 获取excel表格某一行的数据 3. 获取exc ...

最新文章

  1. WINCE下实现USB转RS232
  2. 2014公积金新政策对你买房有什么好处?
  3. html用bmob做留言,bmob js-sdk 在vue中的使用教程
  4. java位运算求幂,程序员必学:快速幂算法
  5. Zabbix触发器_action动作及模板应用(二)
  6. 教你怎么蹭网实现和dualwan双倍网速上网
  7. BZOJ 3098: Hash Killer II(新生必做的水题)
  8. java –cp_Java设置–用Java设置
  9. Android 四大组件学习之Service五
  10. 计算硬盘的计算机,硬盘整数分区计算器免费版
  11. 易点易动助力企业年中固定资产盘点
  12. Ubuntu下自制douban.fm播放器
  13. 微信小程序chooseMedia应用
  14. 惠普服务器关机自动重启,HP笔记本关机自动重启的解决办法
  15. 分手纪念网页-分手了就用这个看看吧(移动端)
  16. [渝粤教育] 浙江工商大学 中外经典演出欣赏 参考 资料
  17. 第三阶段应用层——1.2 数码相册—字符编码
  18. 矩阵论(补充知识):特征多项式的展开式
  19. HR面必问问题——和HR斗智斗勇(数字IC,FPGA,计算机,JAVA,算法,C++,产品,芯片通用)
  20. Robocup3d比赛环境的搭建及常用函数简介

热门文章

  1. 饼状图环形图数据信息PR图形模板MOGRT
  2. 中小企业数字化转型痛点及解决方案
  3. 小米10开始抓取日志怎么关闭_小米10手机降价,原因原来在这里
  4. 单调时钟与墙上时钟的区别?ntp如何优雅校时?
  5. ftp与lftp命令使用
  6. ZF均衡和ML均衡在不同天线数量下的MIMO系统误码率matlab仿真
  7. 【深度】了解小红书运营攻略
  8. 【20岁的时候决定自己的一生】
  9. SSM网上商城购物系统(前台+后台)
  10. python量化交易--择时策略