Python 操作 Excel 学习笔记
Python 操作 Excel
文章目录
Python 操作 Excel
xlrd 安装
创建工作簿并添加工作表
调整单元格样式
填充数据
写入数据
插入图片
保存文件
xlrd 安装
xlrd 常用函数
打开,加载工作簿
获取工作表
Excel 行操作与列操作
Excel 单元格操作
用 xlrd 模块读取 Excel
用 xlwt 模块写入 Excel
用 xlrd 模块读取 Excel
xlrd 安装
cmd 中输入pip install xlrd
即可安装 xlrd
模块
若失败请自行百度”python配置环境变量“
xlrd 常用函数
打开,加载工作簿
import xlrddata = xlrd.open_workbook("data1.xls") # 打开并加载,返回工作簿对象print(data.sheet_loaded(0)) # 是否加载完成data.unload_sheet(0) # 卸载print(data.sheet_loaded(0))
获取工作表
import xlrddata = 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()) # 获取所有工作表的nameprint(data.nsheets) # 获取工作表数量
Excel 行操作与列操作
import xlrddata = 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 errorprint(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 errorprint(sheet.col(15)[5].value) # 获取单元格内容print(sheet.col_values(15)) # 获取整列单元格内容
Excel 单元格操作
import xlrddata = 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.DASHEDborders.bottom = xlwt.Borders.DOTTEDtitlestyle.borders = borders# 背景颜色dataStyle = xlwt.XFStyle()bgcolor = xlwt.Pattern()bgcolor.pattern = xlwt.Pattern.SOLID_PATTERNbgcolor.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")
赞 (0)