Python使用xlwt和xlrd读写excel文件

    xiaoxiao2025-04-07  36

     

    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文件数据了。

     

     

    最新回复(0)