Python 操作Excel表格详解、xlrd 和 xlwt、实战应用

2022-07-31,,,,

文章目录

    • 一、模块简介
    • 二、功能用法详解
        • xlrd用法详解
        • xlwt用法详解
    • 三、用法实战
        • xlrd读取表格中所有数据
        • xlrd读取表格结果
        • xlwt写入指定数据保存excel
        • xlwt写入excel结果

一、模块简介

xlrd介绍
  • xlrd是Python用来读取excel表格中数据的;
  • 支持xls和xlsx类型的excel文件;
xlwt介绍
  • xlwt是Python用来写入excel表格数据的三方库;
  • Python那种一般使用xlrd读取excel数据,使用xlwt写入excel数据

操作的excel表格信息

二、功能用法详解

xlrd用法详解

对上面表格信息进行操作,方面理解

# _*_ encoding:utf-8 _*_

import xlrd


# excel文件路径
excel_path = u'D:/extract/cs.xlsx'
# 打开excel表格
workbook = xlrd.open_workbook(excel_path)
# 获取所有sheet(工作薄)数目
print(workbook.nsheets)                # 结果 : 2
# 获取所有的工作薄名称,返回一个list里面包含左右的sheet名称字符串
print(workbook.sheet_names())        # 结果 : ["学生信息", "学生地址"]
# 获取所有工作薄对象
print(workbook.sheets())              # 结果 : [<xlrd.sheet.Sheet object at 0x0000000013355438>, <xlrd.sheet.Sheet object at 0x00000000133554E0>]
# 根据索引获取对应的sheet对象,相当于workbook.sheets()[0]
print(workbook.sheet_by_index(0))       # 结果 : <xlrd.sheet.Sheet object at 0x0000000012F91438>
# 根据sheet名称获取sheet对象
print(workbook.sheet_by_name(u'学生信息'))  # 结果 : <xlrd.sheet.Sheet object at 0x0000000012F91438>

# todo 单独对一张表格进行操作
table = workbook.sheets()[0]
# 获取表格名称
print(table.name)               # 结果 : 学生信息
# 获取表格的行数
print(table.nrows)              # 结果 : 5
# 获取表格的列数
print(table.ncols)              # 结果 : 4
# 获取指定行数据,返回Cell对象list,获取第二行数据
print(table.row(1))
# 获取指定列数据,返回Cell对象list,获取第二列数据
print(table.col(1))
# 获取指定行数据,返回list,获取第三行数据
print(table.row_values(2))     # 结果 : ["大花", 5.0, "女", "二年级"]
# 获取指定列数据,返回list,获取第二行数据
print(table.col_values(1))     # 结果 : ["年龄", 3.0, 5.0, 8.0, 6.0]
# 获取指定位置的数据,第二行,第四列
print(table.cell_value(1,3))    # 结果 : 一年级

xlwt用法详解

这里这篇文章写的很好,推荐参考一下,博主这里就偷一下懒,哈哈哈,
python xlwt写入excel操作

三、用法实战

将excel文件中数据读取,并且转换成如下格式

'''
{   '学生信息':[{'姓名':'','年龄':'','性别':'','班级':''},{..}...]
    '学生地址':[{'姓名':'','地址':'','邮编':'',},{..}...]
}
'''

xlrd读取表格中所有数据

# _*_ encoding:utf-8 _*_

import xlrd


def xlrd_excel(excel_path):
    # 数据格式化字典
    data_info = {}
    # 读取文件
    workbook = xlrd.open_workbook(excel_path)
    # 遍历工作薄sheet
    for table in workbook.sheets():
        # 存放字典信息的list
        info_list = []
        table_name = table.name             # sheet名称
        table_top = table.row_values(0)     # sheet 表头
        # 根据行数遍历表格数据,剔除表头信息
        for i in range(1,table.nrows):
            row_info = table.row_values(i)              # 获取指定行数据
            # 将list中的数据float类型转成int
            row_info = [int(f) if isinstance(f,float) else f for f in row_info]
            row_dict = dict(zip(table_top,row_info))    # 将表头与行数据转换成字典格式
            # row_dict 结果 {"地址": "北京", "邮编": 1001.0, "姓名": "二狗"}
            info_list.append(row_dict)
        data_info[table_name] = info_list
    return data_info


excel_path = u'D:/extract/cs.xlsx'
print(xlrd_excel(excel_path))

xlrd读取表格结果

{"学生信息": [{"年龄": 3, "性别": "狗", "班级": "一年级", "姓名": "二狗"}, {"年龄": 5, "性别": "女", "班级": "二年级", "姓名": "大花"},
          {"年龄": 8, "性别": "男", "班级": "三年级", "姓名": "张三"}, {"年龄": 6, "性别": "男", "班级": "二年级", "姓名": "九瓜"}],
 "学生地址": [{"地址": "北京", "邮编": 1001, "姓名": "二狗"}, {"地址": "山东", "邮编": 1003, "姓名": "大花"},
          {"地址": "上海", "邮编": 1005, "姓名": "张三"}, {"地址": "河南", "邮编": 1000, "姓名": "九瓜"}]}

xlwt写入指定数据保存excel

将上面输出的格式化数据保存到excel文件中

# _*_ encoding:utf-8 _*_

import xlwt


def xlwt_excel(excel_path, data_info):
    # 创建workbook 设置编码
    work_book = xlwt.Workbook(encoding='utf-8')
    for key,info_lt in data_info.items():
        # 创建一个工作表sheet
        work_sheet = work_book.add_sheet(key)
        # 写入表头数据
        for i,f in enumerate(info_lt[0].keys()):
            work_sheet.write(0,i,f)
        # 遍历数据
        for index,dt in enumerate(info_lt):
            col = 0             # 列位置
            # 写入数据
            for _,v in dt.items():
                work_sheet.write(index + 1, col, v)
                col += 1
    # 保存数据
    work_book.save(excel_path)


dd = {"学生信息": [{"年龄": 3, "性别": "狗", "班级": "一年级", "姓名": "二狗"}, {"年龄": 5, "性别": "女", "班级": "二年级", "姓名": "大花"},
          {"年龄": 8, "性别": "男", "班级": "三年级", "姓名": "张三"}, {"年龄": 6, "性别": "男", "班级": "二年级", "姓名": "九瓜"}],
 "学生地址": [{"地址": "北京", "邮编": 1001, "姓名": "二狗"}, {"地址": "山东", "邮编": 1003, "姓名": "大花"},
          {"地址": "上海", "邮编": 1005, "姓名": "张三"}, {"地址": "河南", "邮编": 1000, "姓名": "九瓜"}]}
excel_path = u'D:/extract/xlwt.xls'
xlwt_excel(excel_path, dd)

xlwt写入excel结果

本文地址:https://blog.csdn.net/weixin_43796109/article/details/107665201

《Python 操作Excel表格详解、xlrd 和 xlwt、实战应用.doc》

下载本文的Word格式文档,以方便收藏与打印。