网站首页 > 技术文章 正文
python的模块xlrd可以读取excel文件,模块xlwt可以写入xls格式的excel文件,今天我们来学习python处理excel文件的另一个模块:openpyxl模块,它不仅能读取excel文件,而且还可以写入xlsx格式的excel文件。
一、安装openpyxl模块
pip install openpyxl
二、对工作簿的操作
1、新建工作簿
from openpyxl import Workbook
book = Workbook('bookname')
2、打开已有工作簿
from openpyxl import load_workbook
book = load_workbook('bookname',data_only=True)
例如:新建excel文件“tongjibiao.xlsx”,然后再打开它
参数说明:
参数“data_only”的默认值为False,表示单元格内显示公式,也可以设置为True表示单元格内显示值。
当data_only=True时,用save()函数保存工作簿后,xlsx文件单元格中的公式会被替换为常数结果或空值;而当data_only=False时,用save()函数保存工作簿后,xlsx文件单元格中的值会是公式,如果两种值都需要,则可以用Excel程序打开该文件并保存。
三、对工作表的操作
对工作表的操作以文件“tongjibiao.xlsx”为例。
1、显示工作表名称
print(book.sheetnames)
例如:
print(book1.sheetnames)
2、修改工作表名称
sheet.title = "newsheetname"
例如:
sheet2 = book1['Sheet']
sheet2.title = 'tongjibiao2'
3、新建工作表
创建工作表并插入到最后(默认):
sheet = book.create_sheet('sheetname')
创建工作表并插入到最前:
sheet = book.create_sheet(' sheetname ',0)
创建工作表并插入到正数第二:
sheet = book.create_sheet(' sheetname ',1)
创建工作表并插入到倒数第二:
sheet = book.create_sheet(' sheetname ',-1)
例如:
创建新工作表tongjibiao4并插入到最后(默认)
sheet4 = book1.create_sheet('tongjibiao4')
创建工作表tongjibiao1并插入到最前
sheet1 = book1.create_sheet('tongjibiao1',0)
创建工作表tongjibiao3并插入到倒数第二
sheet3 = book1.create_sheet('tongjibiao3',-1)
4、删除工作表
删除工作表方法一:book.remove(book['sheetname'])
删除工作表方法二:del book['sheetname']
例如:
删除工作表tongjibiao4
book1.remove(book1['tongjibiao4'])
删除工作表tongjibiao3
del book1['tongjibiao3']
5、复制工作表
获取当前活跃的工作表
source = book.active
复制工作表
target = book.copy_worksheet(source)
例如:
source = book1.active
target = book1.copy_worksheet(source)
四、对单元格的操作
对单元格的操作以文件“biao.xlsx”为例,原文件单元格内容如下:
1、读取行数和列数
print(sheet.max_row)
print(sheet.max_column)
2、读取单元格内容
print(sheet['D3'].value)
3、写入单元格内容
Sheet['E2'].value = '备注'
4、合并和拆分单元格
sheet.merge_cells('A1:E1)
合并的单元格也可以再拆分开:
sheet.unmerge_cells('A1:E1')
5、单元格计算(需保存文件后才能显示)
sheet['D7'] = '=sum(D3:D6)'
sheet['D8'] = '=average(D3:D6)'
6、设置单元格样式
单元格常见的样式设置包括:Font 字体、Side 边线、Border 边框、PatternFill 填充、Aignment 对齐。
设置单元格样式需要导入openpyxl.style模块:
from openpyxl.styles import PatternFill, Font, Alignment, Border, Side
字体:
font = Font(name='黑体', size=24, italic=True, color=colors.GREEN, bold=True)
sheet['A1'].font = font
连线和边框
side_type = Side(border_style='mediumDashDot',color='FF000000')
border = Border(left=side_type,
right=side_type,
top=side_type,
bottom=side_type,
diagonal=side_type,
diagonal_direction=30,
outline=side_type,
vertical=side_type,
horizontal=side_type
)
sheet['A7'].border = border
对齐
sheet['A1'].alignment=Alignment(horizontal='center',vertical='center')
填充
fill=PatternFill(fill_type=None,start_color='0000FF',end_color='000000')
sheet['E2'].fill = fill
猜你喜欢
- 2025-01-26 相比Selenium,Playwright好用在哪里?
- 2025-01-26 爆强!直接把 Python 编写的图形程序打包为安卓 APP
- 2025-01-26 Python学习(十四)面向对象的三大特征(封装、继承、多态)
- 2025-01-26 有没有什么办法将python文件封装成dll?
- 2025-01-26 理解python中函数的定义和调用(python的函数定义和调用方法有哪些特点)
- 2025-01-26 python requests模块(PYTHON REQUESTS模块下载)
- 2025-01-26 2分钟将Python转换为exe(python转换为exe文件)
- 258℃Python短文,Python中的嵌套条件语句(六)
- 258℃python笔记:for循环嵌套。end=""的作用,图形打印
- 257℃PythonNet:实现Python与.Net代码相互调用!
- 252℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 252℃Python实现字符串小写转大写并写入文件
- 108℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 83℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)