欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-21 22:50:17
文章目录一、模块简介xlrd介绍xlwt介绍操作的excel表格信息二、功能用法详解xlrd用法详解xlwt用法详解三、用法实战xlrd读取表格中所有数据xlrd读取表格结果xlwt写入指定数据保存excelxlwt写入excel结果一、模块简介xlrd介绍xlrd是Python用来读取excel表格中数据的;支持xls和xlsx类型的excel文件;xlwt介绍xlwt是Python用来写入excel表格数据的三方库;Python那种一般使用xlrd读取excel数据,使用xlwt写入...

一、模块简介

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

操作的excel表格信息

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

二、功能用法详解

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结果

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

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