Python处理Excel表格(xlrd、xlwt、xlutils)

本文详细介绍了如何使用Python的xlrd和xlwt库进行Excel文件的读取与写入操作。包括安装第三方库的方法、读取Excel文件的具体步骤及示例代码、写入Excel文件的两种方式及其示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入第三方库

# 第三方库  安装方式:cmd-->pip install xlrd
pip install xlrd
pip install xlwt
pip install xlutils

Xlrd库读取Excel

import xlrd     
# 1-读取excel测试用例
excelDir = r'E:\test.xls'
# 打开Excel
work_book = xlrd.open_workbook(excelDir)
# 查看所有的子表名
print('所有子表名:', work_book.sheet_names())   # 返回的是list列表 ['Sheet1', 'Sheet2', 'Sheet3']

#获取表,两种方法,一种是通过索引,一种是通过表名。
sheet1 = work_book.sheet_names()[0] # 通过索引获取
sheet1 = work_book.sheet_by_name('Sheet1')   # 通过sheet表名获取


# 获取Excel中所有的行数
print('获取Excel中所有的行数:', sheet1.nrows)
# 获取Excel中所有的列数
print('获取Excel中所有的列数:', sheet1.ncols)

# 循环获取第一列的数据
print('循环获取第一列的数据:')
for i in range(1,sheet1.nrows):
    print(sheet1.cell(i, 0)) #xlrd类型的
    print(sheet1.cell(i, 0).value)  #通过value获取值

# 循环获取每一行的数据
print('循环获取第一列的数据:')
for i in range(1, sheet1.nrows):
    print(sheet1.row_values(i))  #结果是list列表类型

    

获取具体单元格方法

#获取整行的值,以列表形式返回

row_value = ws.row_values(3)

print('第四行数据为:',row_value)

#获取整列的值,以列表形式返回

row_col = ws.col_values(3)

print('D列的数据为:',row_col)

#获取所有的lie

nrows = ws.nrows

ncols = ws.ncols

print('总行数为:',nrows,'总列数为:',ncols)

#获取某个单元格内容cell(行,列)

cell_F3 = ws.cell(2,5).value

print('F3单元格内容为:',cell_F3)

#使用行列索引获取某个单元格的内容

row_F3 = ws.row(2)[5].value

col_F3 = ws.col(5)[2].value

print('F3单元格的内容为:',row_F3, '\n'  'F3单元格的内容为:',col_F3)

xlwt写入Execl表格数据


import xlwt

#新建一个Excel文件

wb = xlwt.Workbook()

#在新建的文件中新建一个名为Sheet1的工作簿

ws = wb.add_sheet(‘Sheet1’,cell_overwrite_ok=True)

#添加表单页
#方法一:
ws.write(0, 0, '手机号')
ws.write(0, 1, '归属地')
ws.write(0,2,'运营商')
ws.write(0, 3, '城市区号')
ws.write(0, 4, '行政区划代码')
#方法二:
value_title = ["姓名", "性别", "年龄", "城市", "职业"]
for i in range(0, len(value_title)):
    ws.write(0, i, value_title[i])

#写入数据we.write(行,列,内容)
for i in range(1,7):

    for k in range(5):

        ws.write(i,k,i+k)

xlutils将内容追加到表格内:

import xlwt
import xlrd
from xlutils.copy import copy

path = "text1.xls"   # 打开文件
index = len(value)  # 获取需要写入数据的行数
workbook = xlrd.open_workbook(path)  # 打开工作簿
sheets = workbook.sheet_names()  # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格
rows_old = worksheet.nrows  # 获取表格中已存在的数据的行数
new_workbook = copy(workbook)  # 将xlrd对象拷贝转化为xlwt对象
new_worksheet = new_workbook.get_sheet(0)  # 获取转化后工作簿中的第一个表格
for i in range(0, index):
    for j in range(0, len(value[i])):
        new_worksheet.write(i+rows_old, j, value[i][j])  # 追加写入数据,注意是从i+rows_old行开始写入
new_workbook.save(path)  # 保存工作簿

示例:

import xlrd
import xlwt
from xlutils.copy import copy
 
 
def write_excel_xls(path, sheet_name, value):
    index = len(value)  # 获取需要写入数据的行数
    workbook = xlwt.Workbook()  # 新建一个工作簿
    sheet = workbook.add_sheet(sheet_name)  # 在工作簿中新建一个表格
    for i in range(0, index):
        for j in range(0, len(value[i])):
            sheet.write(i, j, value[i][j])  # 像表格中写入数据(对应的行和列)
    workbook.save(path)  # 保存工作簿
    print("xls格式表格写入数据成功!")
 
 
def write_excel_xls_append(path, value):
    index = len(value)  # 获取需要写入数据的行数
    workbook = xlrd.open_workbook(path)  # 打开工作簿
    sheets = workbook.sheet_names()  # 获取工作簿中的所有表格
    worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格
    rows_old = worksheet.nrows  # 获取表格中已存在的数据的行数
    new_workbook = copy(workbook)  # 将xlrd对象拷贝转化为xlwt对象
    new_worksheet = new_workbook.get_sheet(0)  # 获取转化后工作簿中的第一个表格
    for i in range(0, index):
        for j in range(0, len(value[i])):
            new_worksheet.write(i+rows_old, j, value[i][j])  # 追加写入数据,注意是从i+rows_old行开始写入
    new_workbook.save(path)  # 保存工作簿
    print("xls格式表格【追加】写入数据成功!")
 
 
def read_excel_xls(path):
    workbook = xlrd.open_workbook(path)  # 打开工作簿
    sheets = workbook.sheet_names()  # 获取工作簿中的所有表格
    worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格
    for i in range(0, worksheet.nrows):
        for j in range(0, worksheet.ncols):
            print(worksheet.cell_value(i, j), "\t", end="")  # 逐行逐列读取数据
        print()
 
 
book_name_xls = 'xls格式测试工作簿.xls'
 
sheet_name_xls = 'xls格式测试表'
 
value_title = [["姓名", "性别", "年龄", "城市", "职业"],]
 
value1 = [["张三", "男", "19", "杭州", "研发工程师"],
          ["李四", "男", "22", "北京", "医生"],
          ["王五", "女", "33", "珠海", "出租车司机"],]
 
value2 = [["Tom", "男", "21", "西安", "测试工程师"],
          ["Jones", "女", "34", "上海", "产品经理"],
          ["Cat", "女", "56", "上海", "教师"],]
 
 
write_excel_xls(book_name_xls, sheet_name_xls, value_title)
write_excel_xls_append(book_name_xls, value1)
write_excel_xls_append(book_name_xls, value2)
read_excel_xls(book_name_xls)


参考文章:https://blog.csdn.net/u013250071/article/details/81911434

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值