Python实例篇:自动操作Excel文件(既简单又特别实用)

简介: Python实例篇:自动操作Excel文件(既简单又特别实用)

前言
大家好,我是辣条哥~

大家平时在工作与学习中都会操作到Excel文件格式,特别是很多数据的时候,靠人力去识别操作非常容易出错。今天就带大家用Python来处理Excel文件,让你成为一个别人眼中的秀儿~

这已经是辣条发布的第114篇博文了,也有很多人留言说想要我的源码,还有想让我带的,奈何我也时间有限,不过能帮的就是我之前也收集了很多的源码,PDF,视频这些,想要的可以直接找我:《单击蓝字直接找我》

目录
前言
工具
读取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))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
写入Excel文件内容
​ Excel文件写入可以通过xlwt 模块的Workbook类创建工作簿对象,通过工作簿对象的add_sheet方法可以添加工作表,通过工作表对象的write方法可以向指定单元格中写入数据,最后通过工作簿对象的save方法将工作簿写入到指定的文件或内存中。下面代码操作了一个学员成绩表的写入。

import random

import xlwt

student_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')

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 = 5
header_style.pattern = pattern
titles = ('姓名', '语文', '数学', '英语')
for index, title in enumerate(titles):

sheet.write(0, index, title, header_style)

1
2
3
4
5
6
7
8
9
设置表头的位置

align = xlwt.Alignment()

垂直方向的对齐方式

align.vert = xlwt.Alignment.VERT_CENTER

水平方向的对齐方式

align.horz = xlwt.Alignment.HORZ_CENTER
header_style.alignment = align
1
2
3
4
5
6
设置单元格的宽高

设置行高为40px

sheet.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)

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

目录
相关文章
|
3月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
3月前
|
编译器 Python
如何利用Python批量重命名文件
本文介绍了如何使用Python和PyCharm对文件进行批量重命名,包括文件名前后互换、按特定字符调整顺序等实用技巧,并提供了完整代码示例。同时推荐了第三方工具Bulk Rename Utility,便于无需编程实现高效重命名。适用于需要处理大量文件命名的场景,提升工作效率。
|
3月前
|
Python
Excel中如何批量重命名工作表与将每个工作表导出到单独Excel文件
本文介绍了如何在Excel中使用VBA批量重命名工作表、根据单元格内容修改颜色,以及将工作表导出为独立文件的方法。同时提供了Python实现导出工作表的代码示例,适用于自动化处理Excel文档。
|
4月前
|
编解码 Prometheus Java
当Python同时操作1000个文件时,为什么你的CPU只用了10%?
本文介绍如何构建一个高效的文件处理系统,解决单线程效率低、多线程易崩溃的矛盾。通过异步队列与多线程池结合,实现任务调度优化,提升I/O密集型操作的性能。
75 4
|
4月前
|
人工智能 索引 Python
[oeasy]python094_使用python控制音符列表_midi_文件制作
本文介绍了如何使用Python控制音符列表制作MIDI文件。首先回顾了列表下标索引(正数和负数)的用法,接着通过`mido`库实现MIDI文件生成。以《两只老虎》为例,详细解析了代码逻辑:定义音高映射、构建旋律列表、创建MIDI文件框架,并将音符插入音轨。还探讨了音符时值与八度扩展的实现方法。最终生成的MIDI文件可通过不同平台播放或编辑。总结中提到,此技术可用于随机生成符合调性的旋律,同时引发对列表其他实际应用的思考。
113 5
|
6月前
|
Python
使用Python实现multipart/form-data文件接收的http服务器
至此,使用Python实现一个可以接收 'multipart/form-data' 文件的HTTP服务器的步骤就讲解完毕了。希望通过我的讲解,你可以更好地理解其中的逻辑,另外,你也可以尝试在实际项目中运用这方面的知识。
273 69
|
3月前
|
数据采集 监控 算法
Python文件与目录比较全攻略:从基础操作到性能优化
文件比较的核心在于数据指纹校验,通过逐字节比对生成唯一标识,确保内容一致性。从标准库的os与filecmp到高性能第三方库如pydiffx,再到分布式与量子加密技术的未来趋势,文件比较广泛应用于数据备份、代码审查与系统监控等领域,是保障数据完整性的关键技术手段。
91 0
|
5月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
170 10
|
4月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
|
4月前
|
数据采集 运维 BI
Python 文件操作进阶|使用 shutil 实现高效文件复制
在开发和运维中,处理大量文件是常见需求,如备份配置、归档日志或构建部署包。手动复制粘贴已无法满足高效需求!Python 的 `shutil` 模块提供了强大的文件操作功能,支持单文件复制、目录树迁移及自动化任务构建。本文详解 `shutil.copy()` 基础用法与进阶技巧,如批量复制、自动路径检测、时间戳命名备份等,助你实现高效自动化。结合实战案例(如自动备份系统),让你的代码更专业!学习后,欢迎交流心得,一起精进 Python 技能。关注我,获取更多编程技巧与源码分享!

热门文章

最新文章

推荐镜像

更多