python-读写Excel(二)-xlrd、xlwt、xlutils表复制

这篇博客介绍了如何使用Python的xlrd和xlwt库进行Excel文件的读写操作,包括读取单个和多个单元格数据、读取行和列数据,以及写入数据到工作表。此外,还展示了利用xlutils库实现Excel表格的复制。
摘要由CSDN通过智能技术生成

目录

读文件

写文件

表复制


python操作Excel主要使用xlrd(读文件)和xlwt(写文件)库

安装:pip install xlrd        、pip install xlwt

读文件

读取单个单元格的数据

import xlrd, xlwt

excel = xlrd.open_workbook(r'D:\zhuomian\test.xls')
sh1 = excel.sheet_by_index(0)

cellvalue1 = sh1.cell_value(rowx=0, colx=0)  # 获取单元格的值(行号,列号)
cellvalue2 = sh1.cell(1, 1).value  # 获取单元格的值(行号,列号)
print(cellvalue1)
print(cellvalue2)

 读取多个单元格数据

excel = xlrd.open_workbook(r'D:\zhuomian\test.xls')
sh1 = excel.sheet_by_index(0)

print(sh1.nrows)  # 读取列表中有效数据有多少行
print(sh1.ncols)  # 读取列表中有效数据有多少列
print(sh1.row(2))  # 读取列表中指定行的数据(使用索引号),会打印数据的类型,[text:'额', text:'是', text:'时', empty:'', empty:'', empty:'']
print(sh1.row_values(2))  # 读取列表中指定行的数据(使用索引号),不打印数据的类型,['额', '是', '时', '', '', '']
print(sh1.col(0))  # 读取指定列的数据(使用索引号)
print(sh1.col_values(0))

通过有效行获取数据

for j in range(sh1.nrows):
    for i in sh1.row_values(j):  # for i in sh1.row(j):
        print(i, end=' ')  # print(i.value,end=' ')

写文件

写入数据sheet.write(row, col, data)

import xlrd, xlwt

exl = xlwt.Workbook()  # 创建工作表文件对象
sheet = exl.add_sheet('sheet1')  # 新建表
list_top = ['姓名', '性别', '年龄']
list_data = [
    {'name': '黛玉', 'gender': '女', 'age': 16},
    {'name': '宝钗', 'gender': '女', 'age': 17}
]
for i, top in enumerate(list_top):
    sheet.write(0, i, top)  # 写入数据(行,列,内容)
for i, data in enumerate(list_data):
    sheet.write(i + 1, 0, data['name'])
    sheet.write(i + 1, 1, data['gender'])
    sheet.write(i + 1, 2, data['age'])
exl.save('wd.xlsx')  # 保存文件

表复制

可以是文件读写的方法进行复制,这里使用新的方法xlutils库方法(可以方便使用表数据读写功能,相当于xlrd和xlwt结合体)

import xlrd
from xlutils.copy import copy

ele = xlrd.open_workbook('wd.xlsx')  # 打开表
sheet1 = ele.sheets()[0]  # 获取表单
new_wd = copy(ele)
st = new_wd.get_sheet(0)
st.write(4, 4, '测试xlutils库方法')
new_wd.save('new_wd.xlsx')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值