分享

Python 操作 Excel 学习笔记

 印度阿三17 2021-02-13

Python 操作 Excel

文章目录

用 xlrd 模块读取 Excel

xlrd 安装

cmd 中输入pip install xlrd 即可安装 xlrd 模块

若失败请自行百度”python配置环境变量“

在这里插入图片描述

xlrd 常用函数

打开,加载工作簿

import xlrd

data = xlrd.open_workbook("data1.xls")  # 打开并加载,返回工作簿对象
print(data.sheet_loaded(0))  # 是否加载完成
data.unload_sheet(0)  # 卸载
print(data.sheet_loaded(0))

在这里插入图片描述

获取工作表

import xlrd

data = xlrd.open_workbook("data1.xls")  # 打开并加载,返回工作簿对象
print(data.sheets())  # 获取全部工作表
print(data.sheets()[0])  # 下标访问
print(data.sheet_by_name("Sheet1"))  # 根据名字获取工作表  大小写严格!
print(data.sheet_by_index(0))  # 根据下标获取工作表
print(data.sheet_names())  # 获取所有工作表的name
print(data.nsheets)  # 获取工作表数量

在这里插入图片描述

Excel 行操作与列操作

import xlrd

data = xlrd.open_workbook("data1.xls")  # 打开并加载,返回工作簿对象
# 操作 Excel 行
sheet = data.sheet_by_index(0)  # 获取第一个工作表
print(sheet.nrows)  # 获取工作表行数
print(sheet.row(15))  # 该行单元格对象组成的列表
print(sheet.row_types(15))  # 获取单元格的数据类型
# type: 0 empty,1 string,2 number, 3 date,4 boolean, 5 error
print(sheet.row(15)[5].value)  # 获取单元格内容
print(sheet.row_values(15))  # 获取整行单元格内容
print(sheet.row_len(15))  # 获取单元格长度
# 操作 Excel 列
sheet = data.sheet_by_index(1)  # 获取第一个工作表
print(sheet.ncols)  # 获取工作表列数
print(sheet.col(2))  # 该列单元格对象组成的列表
print(sheet.col_types(15))  # 获取单元格的数据类型
# type: 0 empty,1 string,2 number, 3 date,4 boolean, 5 error
print(sheet.col(15)[5].value)  # 获取单元格内容
print(sheet.col_values(15))  # 获取整列单元格内容

在这里插入图片描述

Excel 单元格操作

import xlrd

data = xlrd.open_workbook("data1.xls")  # 打开并加载,返回工作簿对象
# 操作 Excel 单元格
sheet = data.sheet_by_index(0)
print(sheet.cell(15, 7))  # 获取单元格
# 获取单元格的数据类型
print(sheet.cell_type(15, 7))
print(sheet.cell(15,7).ctype)
# 获取单元格内容
print(sheet.cell_value(15, 7))
print(sheet.cell(15,7).value)

在这里插入图片描述

用 xlwt 模块写入 Excel

xlrd 安装

cmd 中输入pip install xlwt 即可安装 xlwt 模块

创建工作簿并添加工作表

import xlwt

# 创建工作簿
wb = xlwt.Workbook()
# 添加工作表
ws = wb.add_sheet("绩点")

调整单元格样式

# 设置单元格样式
titlestyle = xlwt.XFStyle()  # 初始化样式
titlefont = xlwt.Font()
titlefont.name = "楷体"
titlefont.bold = True  # 加粗
titlefont.height = 11 * 20  # 字号
titlefont.colour_index = 0x08  # 字体颜色
titlestyle.font = titlefont

# 单元格对齐方式
cellalign = xlwt.Alignment()
cellalign.horz = 0x02  # 水平
cellalign.vert = 0x01  # 垂直
titlestyle.alignment = cellalign

# 边框
borders = xlwt.Borders()
borders.right = xlwt.Borders.DASHED
borders.bottom = xlwt.Borders.DOTTED
titlestyle.borders = borders

# 背景颜色
dataStyle = xlwt.XFStyle()
bgcolor = xlwt.Pattern()
bgcolor.pattern = xlwt.Pattern.SOLID_PATTERN
bgcolor.pattern_fore_colour = 22  # 背景颜色
dataStyle.pattern = bgcolor

填充数据

ws.write_merge(5, 6, 4, 6, "绩点", titlestyle) # (x1,y1,x2,y2,内容,样式)
# (x1,y1)到(x2,y2)之间合并单元格,并以相应样式填写内容

写入数据

data = (("学号", "第一学期", "第二学期"),
        ("201911040693", 2.971, 2.939),
        ("201911040694", 2.035, 2.487),
        ("201911040695", 2.709, 2.099),
        ("201911040696", 3.374, 3.388),
        ("201911040697", 2.646, 2.415))
for i, item in enumerate(data):
    for j, val in enumerate(item):
        ws.write(i   7, j   4, val, dataStyle)  # (行,列,内容,样式)
        # 填写数据

插入图片

ws.insert_bitmap("123.bmp", 20, 21)

保存文件

wb.save("前两学期绩点统计.xls")
来源:https://www./content-1-856401.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多