当前位置: 移动技术网 > IT编程>脚本编程>Python > Python 操作Excel表格详解、xlrd 和 xlwt、实战应用

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

2020年07月30日  | 移动技术网IT编程  | 我要评论
文章目录一、模块简介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表格信息

在这里插入图片描述
在这里插入图片描述

二、功能用法详解

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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网