首页 热点 业界 科技快讯 数码 电子消费 通信 前沿动态 电商

Python自动操作Excel文件的方法详解

2022-05-08 05:48:46 来源 : 软件开发网

目录

工具

读取Excel文件内容

写入Excel文件内容

Excel文件样式调整

设置表头的位置

设置单元格的宽高

总结

工具

python3.7

Pycharm

Excel

xlwt&xlrd

读取Excel文件内容

当前文件夹下有一个名为“股票数据.xlsx”的Excel文件,可以按照下列代码方式来操作它。

import xlrd# 使用xlrd模块的open_workbook函数打开指定Excel文件并获得Book对象(工作簿)wb = xlrd.open_workbook("股票数据.xlsx")# 通过Book对象的sheet_names方法可以获取所有表单名称sheetname = wb.sheet_names()[0]# 通过指定的表单名称获取Sheet对象(工作表)sheet = wb.sheet_by_name(sheetname)# 通过Sheet对象的nrows和ncols属性获取表单的行数和列数print(sheet.nrows, sheet.ncols)for row in range(sheet.nrows): for col in range(sheet.ncols): # 通过Sheet对象的cell方法获取指定Cell对象(单元格) # 通过Cell对象的value属性获取单元格中的值 value = sheet.cell(row, col).value # 对除首行外的其他行进行数据格式化处理 if row > 0: # 第1列的xldate类型先转成元组再格式化为“年月日”的格式 if col == 0: # xldate_as_tuple函数的第二个参数只有0和1两个取值 # 其中0代表以1900-01-01为基准的日期,1代表以1904-01-01为基准的日期 value = xlrd.xldate_as_tuple(value, 0) value = f"{value[0]}年{value[1]:>02d}月{value[2]:>02d}日" # 其他列的number类型处理成小数点后保留两位有效数字的浮点数 else: value = f"{value:.2f}" print(value, end="\t") print()# 获取最后一个单元格的数据类型# 0 - 空值,1 - 字符串,2 - 数字,3 - 日期,4 - 布尔,5 - 错误last_cell_type = sheet.cell_type(sheet.nrows - 1, sheet.ncols - 1)print(last_cell_type)# 获取第一行的值(列表)print(sheet.row_values(0))# 获取指定行指定列范围的数据(列表)# 第一个参数代表行索引,第二个和第三个参数代表列的开始(含)和结束(不含)索引print(sheet.row_slice(3, 0, 5))写入Excel文件内容

Excel文件写入可以通过xlwt 模块的Workbook类创建工作簿对象,通过工作簿对象的add_sheet方法可以添加工作表,通过工作表对象的write方法可以向指定单元格中写入数据,最后通过工作簿对象的save方法将工作簿写入到指定的文件或内存中。下面代码操作了一个学员成绩表的写入。

import randomimport xlwtstudent_names = ["关羽", "张飞", "赵云", "马超", "黄忠"]scores = [[random.randint(40, 100) for _ in range(3)] for _ in range(5)]# 创建工作簿对象(Workbook)wb = xlwt.Workbook()# 创建工作表对象(Worksheet)sheet = wb.add_sheet("一年级二班")# 添加表头数据titles = ("姓名", "语文", "数学", "英语")for index, title in enumerate(titles): sheet.write(0, index, title)# 将学生姓名和考试成绩写入单元格for row in range(len(scores)): sheet.write(row + 1, 0, student_names[row]) for col in range(len(scores[row])): sheet.write(row + 1, col + 1, scores[row][col])# 保存Excel工作簿wb.save("考试成绩表.xlsx")Excel文件样式调整

还可以通过XFStyle对象来设置单元格的不同样式。主要包括字体(Font)、对齐方式(Alignment)、边框(Border)和背景(Background)的设置。

header_style = xlwt.XFStyle()pattern = xlwt.Pattern()pattern.pattern = xlwt.Pattern.SOLID_PATTERN# 0 - 黑色、1 - 白色、2 - 红色、3 - 绿色、4 - 蓝色、5 - 黄色、6 - 粉色、7 - 青色pattern.pattern_fore_colour = 5header_style.pattern = patterntitles = ("姓名", "语文", "数学", "英语")for index, title in enumerate(titles): sheet.write(0, index, title, header_style)设置表头的位置align = xlwt.Alignment()# 垂直方向的对齐方式align.vert = xlwt.Alignment.VERT_CENTER# 水平方向的对齐方式align.horz = xlwt.Alignment.HORZ_CENTERheader_style.alignment = align设置单元格的宽高# 设置行高为40pxsheet.row(0).set_style(xlwt.easyxf(f"font:height {20 * 40}"))titles = ("姓名", "语文", "数学", "英语")for index, title in enumerate(titles): # 设置列宽为200px sheet.col(index).width = 20 * 200 # 设置单元格的数据和样式 sheet.write(0, index, title, header_style)总结

其他操作Excel文件的三方库(如openpyxl)大家有兴趣可以自行了解。掌握了Python程序操作Excel的方法,可以解决日常办公中很多繁琐的处理Excel电子表格工作,最常见就是将多个数据格式相同的Excel文件合并到一个文件以及从多个Excel文件或表单中提取指定的数据。当然,如果要对表格数据进行处理,使用Python数据分析神器之一的pandas库可能更为方便,因为pandas库封装的函数以及DataFrame类可以完成大多数数据处理的任务。

到此这篇关于Python自动操作Excel文件的方法详解的文章就介绍到这了,更多相关Python操作Excel内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!

标签: 对齐方式 自动操作 支持软件

相关文章

最近更新
观焦点:超萌相机 2023-03-01 12:29:37
海南百货网 2023-03-01 12:13:44
焦点热讯:宜点充 2023-02-28 10:10:16
天天关注:小铺CEO 2023-02-28 10:07:13
【世界聚看点】KaFit 2023-02-28 09:31:37
葱天下 2023-02-28 09:17:03
渔界竞钓 2023-02-28 08:15:29
焦点快看:鲸奇视频 2023-02-28 06:30:37
环球热议:萝小逗 2023-02-27 23:25:49
简讯:小码公交 2023-02-27 23:16:12
彼岸花 2023-02-27 22:32:52
时时夺宝 2023-02-27 21:37:50
天天动态:袜之源 2023-02-27 21:29:50
天天资讯:AI空气 2023-02-27 20:19:46
世界时讯:绘读 2023-02-27 20:19:41
看点:一元得购 2023-02-27 19:26:28