Python使用xlwt和xlrd读写excel文件

 

Python使用xlwt和xlrd读写excel文件

xlwt和xlrd是两个相互配套的模块,在Python中,用于将数据写入Excel文件和读取Excel文件的数据。

从字面即可看出xlwt是对xls格式的文件进行write,xlrd是对xls格式的文件进行read。

xlwt可以实现指定表单、指定单元格的写入。在写入的时候,xlwt写的过程就是一个单元格一个单元格的写。

一、安装xlwt和xlrd

pip install xlwt
pip install xlrd

二、使用xlwt将数据写入excel文件

import xlwt


xlwt_data = [
    ('有', '人', '云', '淡', '风', '轻'),
    ('有', '人', '负', '重', '前', '行'),
    ('p', 'y', 't', 'h', 'o', 'n')
]
output_file_name = 'xlwt_file.xls'


def save_excel(target_list, output_file_name):
    """
    将数据写入xls文件
    """
    if not output_file_name.endswith('.xls'):
        output_file_name += '.xls'
    workbook = xlwt.Workbook(encoding='utf-8')
    ws = workbook.add_sheet("sheet1")
    title_data = ('a', 'b', 'c', 'd', 'e', 'f')
    target_list.insert(0, title_data)
    rows = len(target_list)
    lines = len(target_list[0])
    for i in range(rows):
        for j in range(lines):
            ws.write(i, j, target_list[i][j])
    workbook.save(output_file_name)


save_excel(xlwt_data, output_file_name)

代码描述:

1.我们先将需要保存的数据解析好,保存成固定的数据类型(一个由元组或列表构成的列表)

2.我们将保存数据到excel文件的代码封装成一个函数,方便重用

主要步骤为:

(1).创建一个xlwt.Workbook()对象,也就是创建一个表格对象

(2).使用add_sheet()方法创建或打开一张表(sheet)

(3).将数据一个单元格一个单元格的依次写入到表中

(4).保存文件,指定自己想保存成的文件名字

运行结果:

上面的代码执行后,会在代码同级目录下创建一个名字为xlwt_file.xls的excel文件,并写入xlwt_data的数据,使用excel打开结果如下:

三、使用xlrd读取excel文件数据

xlrd可以实现指定表格、指定单元格的读取。在读取的时候,xlrd可以按行、按列读,也可以一个单元格一个单元格的依次读取。

import xlrd


input_file_name = 'xlwt_file.xls'


def read_excel(input_file_name):
    """
    从xls文件中读取数据
    """
    workbook = xlrd.open_workbook(input_file_name)
    print(workbook)
    # 可以使用workbook对象的sheet_names()方法获取到excel文件中哪些表有数据
    print(workbook.sheet_names())
    # 可以通过sheet_by_index()方法或sheet_by_name()方法获取到一张表,返回一个对象
    # table = workbook.sheet_by_index(0)
    # print(table)
    table = workbook.sheet_by_name('sheet1')
    print(table)
    # 通过nrows和ncols获取到表格中数据的行数和列数
    rows = table.nrows
    cols = table.ncols
    # 可以通过row.values()按行获取数据,返回一个列表,也可以按列
    for row in range(rows):
        row_data = table.row_values(row)
        print(''.join(row_data))
    # 也可以根据单元格获取每一个单元格的数据
    for row in range(rows):
        for col in range(cols):
            data = table.cell(row, col).value
            print(data, end=' ')


read_excel(input_file_name)

代码描述:

1.通过xlrd的open_workbook()方法打开一个xls文件,返回一个workbook对象,这个对象是一个Book对象,即文件对象

2.通过文件对象workbook的sheet_names()方法可以获取文件中所有有数据的表名,返回一个表名构成的列表

3.通过文件对象workbook的sheet_by_id()方法或sheet_by_name()方法可以打开指定的表,返回一个表格对象table

4.通过表格对象table的nrows属性和ncols属性,可以获取到表格的行数和列数

5.获取到表格的行数和列数后,就可以用row_values()方法或col_values()方法来按行或按列来获取表格中的数据了

6.也可以使用cell().value指定单元格的行和列来读取指定单元格的值

运行结果:

<xlrd.book.Book object at 0x000002733656D0F0>
['sheet1']
<xlrd.sheet.Sheet object at 0x0000027336BE5BE0>
abcdef
有人云淡风轻
有人负重前行
python
a b c d e f 有 人 云 淡 风 轻 有 人 负 重 前 行 p y t h o n 

现在,我们可以很方便的使用xlwt和xlrd来写入和读取xls格式的excel文件数据了。

 

 

  • 14
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小斌哥ge

非常感谢,祝你一切顺利。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值