Python读写与追加excel⽂件
读写与追加excel⽂件⽤的是 xlwt(写),xlrd(读),xlutils(操作excel)这三个包
这篇博客从以下⼏个⽅⾯来叙述:
1. 三个模块的安装
2. 读取excel⽂件(.xls .xlsx)
3. 写⼊excel⽂件
4. 追加excel⽂件
1.三个模块的安装
pip install xlwt
pip install xlrd
pip install xlutils
2.读取excel⽂件
读取excel的逻辑是:
workbook(⼯作薄)------------》表(sheet)---------》 ⾏,列 ---------》单元格
下⾯是我写的⼀个类:
class Read_excel(object):
def __init__(self, path_name, sheet='sheet1'):
self.work_book = xlrd.open_workbook(path_name)
self.sheet = self.work_book.sheet_by_name(sheet)
# 根据⾏号得到该⾏全部数据
def get_value_by_row(self, row):
return w_values(row)
# 了解这个表⼀共有多少⾏
def get_row_number(self):
return ws
与他对应的测试类:
write = Read_excel(path_name='test.xlsx', sheet='sheet1')
<_value_by_row(2) # 得到第3⾏的数据,返回⼀个列表
_row_number()) # 得到'sheet1'这张表⼀共有多少上
3.写⼊excel⽂件
写⼊excel与读取的思路相同:
新建⼯作薄(work_book) ---------------- 》 新建表(sheet) -------------》 为表中添加元素 ---------》保存到本地我同样写了⼀个⼩的例⼦:
class Write_excel(object):
def __init__(self, path_name, sheet='sheet1'):
self.save_path = path_name
execl函数 linuxself.work_book = xlwt.Workbook(encoding='utf-8')
self.sheet = self.work_book.add_sheet(sheet)
# 添加内容,添加的内容会独占⼀⾏
def add_content(self, content):
for i in range(len(content)):
# 这是写⼊数据的根本函数参数是:(⾏号,列号,这⼀格写⼊内容)
self.sheet.w_num, i, content[i])
# 将⽂件从内存中写⼊本地
def write_now(self):
self.work_book.save(self.save_path)
与它对应的测试类:
write = Write_excel(path_name='test.xlsx', sheet='sheet1')
write.add_content(['1', '2', '3']) # 在第⼀⾏第⼀列添加1,第⼆列添加2,第三列添加3
write.write_now()
注意:这⾥的path_name可以是⼀个不存在的⽂件,但是如果写路径,linux下不能使⽤~/Desktop/...什么的,要舍去‘~’,把路径写全 /home/user/Desktop/...
4.追加excel⽂件
本⼈不推荐频繁的追加excel⽂件,因为它的思路是:
读取⼀个⽂件的内容,放到内存中 ------------》 在内存中完成修改 ----------------》将内存中的新内容变成excel⽂件覆盖掉原来的⽂件
这⾥我写了⼀个具体的⽅法:
def append_excel(path_name):
write_excel()
book = xlrd.open_workbook(path_name)
wfile = copy(book) # 在内存中复制
wsheet = _sheet('sheet')
wsheet.write(2, 1, 'new_new_new') # 在第3⾏第2列添加新数据'new_new_new'
wfile.save(path_name)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论