python的xlutils模块_xlutils模块使用

本文介绍了如何使用Python的xlutils库来操作Excel文件,包括拷贝原文件、获取工作簿信息、修改文件内容、按行追加数据。示例代码详细展示了如何实现这些功能,例如定位并修改特定单元格内容,以及在工作表中追加多行数据。
摘要由CSDN通过智能技术生成

1、xlutils 实现拷贝原文件

原表格:

import xlrdfromxlutils.copy import copy

workbook= xlrd.open_workbook('mcw_test.xlsx') # 打开工作簿

new_workbook=copy(workbook) # 将xlrd对象拷贝转化为xlwt对象

new_workbook.save("mcw_test.xlsx") # 保存工作簿

新工作簿的工作表内容一样,sheet2有点数据也复制出来了,只是格式没有复制过来:

2、拷贝前获取原工作簿信息

workbook = xlrd.open_workbook('mcw_test.xlsx') # 打开工作簿

sheets=workbook.sheet_names() # 获取工作簿中的所有工作表名字,形成列表元素

worksheet= workbook.sheet_by_name(sheets[0]) # 通过sheets[0]工作表名称获取工作簿中所有工作表中的的第一个工作表

rows_old=worksheet.nrows # 获取第一个工作表中已存在的数据的行数

print(sheets,sheets[0],worksheet,worksheet.nrows )-------------------------------------结果:

['魔降风云变人名单', 'Sheet2', 'Sheet3'] 魔降风云变人名单 4

3、拷贝后获得新工作簿的信息:

workbook = xlrd.open_workbook('mcw_test.xlsx') # 打开工作簿

new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象

new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个工作表对象

print(new_worksheet,new_workbook,new_worksheet.name) #有时间整理下工作表对象的方法,工作表可以.name

----------------------------结果:

魔降风云变人名单

4、拷贝后直接修改文件内容:

import xlrd

import xlwtfromxlutils.copy import copy

# 打开想要更改的excel文件

old_excel= xlrd.open_workbook('mcw_test.xlsx', formatting_info=True)

# 将操作文件对象拷贝,变成可写的workbook对象

new_excel=copy(old_excel)

# 获得第一个sheet的对象

ws= new_excel.get_sheet(0)

# 写入数据

ws.write(0, 0, '第一行,第一列')

ws.write(0, 1, '第一行,第二列')

ws.write(0, 2, '第一行,第三列')

ws.write(1, 0, '第二行,第一列')

ws.write(1, 1, '第二行,第二列')

ws.write(1, 2, '第二行,第三列')

# 另存为excel文件,并将文件命名,可以重新命名,应该也可以覆盖掉

new_excel.save('new_mcw_test.xlsx')

5、读取文件,根据标题行和姓名列获取所有单元格索引坐标。

#我要修改小郭吹雪的爱好为喝水

#需求分析:我需要知道"小郭吹雪的行号"和“爱好”的列号。我要修改的内容就是行号和列号所对应的单元格。代码修改就可以用行列索引

import xlrd

import xlwt

from xlutils.copy import copy

workbook = xlrd.open_workbook('mcw_test.xlsx') # 打开工作簿

Data_sheet = workbook.sheets()[0]

row1 = Data_sheet.row_values(0) #取出第一行

dic_col_s={str(i):row1[i] for i in range(0,len(row1))} #将第一行的每个元素加个序数标记,标记列表索引,让列表索引和标题对应,由标题则可以从字典获取列号,即列表索引+1,这里需要的是索引

col2=Data_sheet.col_valu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值