当前位置:网站首页>【openpyxl】只读模式、只写模式
【openpyxl】只读模式、只写模式
2022-08-10 23:50:00 【冰冷的希望】
1.说明
前面我们使用的normal模式进行读写Excel文件,这是一种兼顾读写相对比较平衡的模式,但是,数据加载到内存占用的资源是比较大的,大概是文件的50倍,如果你的Excel文件本身就10M,加载之后程序
需要占用0.5G内存,这很不划算(大内存电脑请自动忽略),所以我们需要考虑是不是可以选择只读或只写模式以便提高性能
2.只读模式
只读模式,如果你需要读取很大的Excel文件,但是又不改变和保存,例如只读取数值用于其他数据分析,这时候我们完全可以使用只读模式提供性能
from openpyxl import load_workbook
# 加载Excel文件时使用read_only指定只读模式
wb = load_workbook(filename='large_file.xlsx', read_only=True)
ws = wb['big_data']
# 可以正常读取值
for row in ws.rows:
for cell in row:
print(cell.value)
# 注意:读取完之后需要手动关闭避免内存泄露
wb.close()
load_workbook参数说明:
定义:
def load_workbook(filename, read_only=False, keep_vba=KEEP_VBA, data_only=False, keep_links=True)
参数:
read_only:是否只读,默认False
keep_vba:是否使用VBA编程,默认False
data_only:是否只加载数据值,即丢弃公式、排序等操作,默认False
keep_links:是否保留超链接,默认True
3.只写模式
如果文件是以写为主,可以在创建工作簿的时候指定为只写模式以便提高性能,不管文件有多大,都可以把内存保持在10M以下
from openpyxl import Workbook
from openpyxl.cell import WriteOnlyCell
from openpyxl.comments import Comment
from openpyxl.styles import Font
wb = Workbook(write_only=True) # 创建工作簿时指定只写模式
ws = wb.create_sheet() # 需要通过create_sheet创建一个sheet
# 可以正常保存数据
for _ in range(100):
ws.append([i for i in range(200)]) # 只能通过append写
# 如果需要保留公式、注释等操作,可以使用WriteOnlyCell
cell = WriteOnlyCell(ws, value="冰冷的希望")
cell.font = Font(name='黑体', size=15)
cell.comment = Comment(text="这是注释", author="pan")
ws.append([cell])
wb.save('openpyxl/test.xlsx')
只写模式注意点:
1.需要通过create_sheet()创建表
2.只能通过append()增加数据,不能通过cell或iter_rows()
3.wb.save()之后不能再修改,否则抛出WorkbookAlreadySaved异常
边栏推荐
- Part of the reserve bank is out of date
- Design and implementation of flower online sales management system
- 如何快速把握行业机会,更高效地推陈出新,是一个重要的命题
- Jvm.分析工具(jconsole,jvisualvm,arthas,jprofiler,mat)
- 好用的翻译插件-一键自动翻译插件软件
- ASIO4ALL是什么
- ROS实验笔记之——安装QPEP以及Intel-MKL
- 只会懒汉式和饿汉式 你还不懂单例模式!
- 镜头之滤光片---关于日夜两用双通滤光片
- [Excel知识技能] 将“假“日期转为“真“日期格式
猜你喜欢
Ali P7 bask in January payroll: hard to fill the, really sweet...
YOLOv5的Tricks | 【Trick10】从PyTorch Hub加载YOLOv5
Mysql.慢Sql
11. Custom Converter
5. Lombok
In 22 years, the salary of programmers nationwide in January was released, only to know that there are so many with annual salary of more than 400,000?
如果纯做业务测试的话,在测试行业有出路吗?
阿里P7晒出1月工资单:狠补了这个,真香...
SQL injection base - order by injection, limit, wide byte
“蔚来杯“2022牛客暑期多校训练营2 DGHJKL题解
随机推荐
excel英文自动翻译成中文教程
13. 内容协商
Design and Realization of Employment Management System in Colleges and Universities
[C language] Detailed explanation of data storage
7. yaml
[C language articles] Expression evaluation (implicit type conversion, arithmetic conversion)
Excel English automatic translation into Chinese tutorial
高校就业管理系统设计与实现
Which foreign language journals and conferences can be submitted for software engineering/system software/programming language?
Web APIs BOM- 操作浏览器之综合案例
[C Language Chapter] Detailed explanation of bitwise operators (“<<”, “>>”, “&”, “|”, “^”, “~”)
Activiti7子流程之Call activity
Part of the reserve bank is out of date
YOLOv5的Tricks | 【Trick12】YOLOv5使用的数据增强方法汇总
8. WEB 开发-静态资源访问
缓存知识总结
11. Custom Converter
特殊类与类型转换
Promote the high-quality development of denim clothing
关于科研学习中的几个问题:如何看论文?如何评价工作?如何找idea?