python处理excel数据处理(Python处理Excel效率高十倍(下篇)通篇硬干货,再也不用加班啦)

本文目录
- Python处理Excel效率高十倍(下篇)通篇硬干货,再也不用加班啦
- python如何操作当前已经打开的excel
- 用python操作excel数据之避坑秘技
- Python办公自动化之操作Excel(一)
- python和pandas处理excel(2)
- Python处理Excel文件(csv, xls, xlsx)
- python和哪个第三方库组合能处理Excel数据
- python处理excel表需要先把表内容存为列表或元组吗
- python操作excel真的那么神奇吗
Python处理Excel效率高十倍(下篇)通篇硬干货,再也不用加班啦
《用Python处理Excel表格》下篇来啦!
身为工作党或学生党的你,平日里肯定少不了与Excel表格打交道的机会。当你用Excel处理较多数据时,还在使用最原始的人工操作吗?现在教你如何用Python处理Excel,从此处理表格再也不加班,时间缩短数十倍!
上篇我们进行了一些事前准备,目的是用Python提取Excel表中的数据。而这一篇便是在获取数据的基础上,对Excel表格的实操处理。
第9行代码用来指定创建的excel的活动表的名字:
·不写第9行,默认创建sheet
·写了第9行,创建指定名字的sheet表
第9行代码,通过给单元格重新赋值,来修改单元格的值
第9行代码的另一种写法sheet.value = ’age’
第10行代码,保存时如果使用原来的(第7行)名字,就直接保存;如果使用了别的名字,就会另存为一个新文件
插入有效数据
使用append()方法,在原来数据的后面,按行插入数据
·insert_rows(idx=数字编号, amount=要插入的行数),插入的行数是在idx行数的下方插入
·insert_cols(idx=数字编号, amount=要插入的列数),插入的位置是在idx列数的左侧插入
·delete_rows(idx=数字编号, amount=要删除的行数)
·delete_cols(idx=数字编号, amount=要删除的列数)
move_range(“数据区域”,rows=,cols=):正整数为向下或向右、负整数为向左或向上
举个例子:
openpyxl.styles.Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
其中,字体颜色中的color是RGB的16进制表示
再者,可以使用for循环,修改多行多列的数据,在这里介绍了获取的方法
Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)
水平对齐:‘distributed’,‘justify’,‘center’,‘left’, ‘centerContinuous’,’right,‘general’
垂直对齐:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’
当然,你仍旧可以调用for循环来实现对多行多列的操作
设置行列的宽高:
·row_dimensions.height = 行高
·column_dimensions.width = 列宽
合并单元格有下面两种方法,需要注意的是,如果要合并的格子中有数据,即便python没有报错,Excel打开的时候也会报错。
merge_cells(待合并的格子编号)
merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
拆分单元格的方法同上
unmerge_cells(待合并的格子编号)
unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
create_sheet(“新的sheet名”):创建一个新的sheet表
第11行,使用title修改sheet表的名字
remove(“sheet名”):删除某个sheet表
要删除某sheet表,需要激活这个sheet表,即:将其作为活动表(关于活动表的定义请看前面文章开头写的有)下面8~11行代码展示了原始活动表与手动更换活动表,第13行代码删掉活动表
背景知识
numpy与pandas
NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库;pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的,我们需要利用Pandas进行Excel的合并
1.下面的代码生成了一个5行3列的包含15个字符的嵌套列表
(注意,第4行代码:15是等于35的,如果是15对应43,或者16对应5*3都会报错)
(注意,第5行代码,虽然5行3列是15个数据,但是可以指定数据从1开头,到16结束)
2.添加表头
使用pandas库的DataFrame来添加表头。关于打印的结果,把最左侧的一列去掉之后会发现结果很和谐,这是因为最左侧的一列代表行号。此时xx变量的类型是
xlsxwriter模块一般是和xlrd模块搭配使用的,
xlsxwriter:负责写入数据,
xlrd:负责读取数据。
1.创建一个工作簿
2.创建sheet表
3.写入数据
python如何操作当前已经打开的excel
读取一个Excel的基本流程
1. 双击打开一个Excel文件
2. 选择sheet
3. 对sheet里面的东西进行操作
在python中我们使用第三方模块 openpyxl模块操作Excel
ps:这个模块不是python自带的 是第三方模块需要我们下载的
进入终端输入: pip install openpyxl
如果想要下载快点:百度搜索 python第三方源
from openpyxl import load_workbook
# 1. 打开Excel文件
workbook = load_workbook("p1.xlsx")
# 2. 选择sheet
# 2.1 获取所有sheet
# print(workbook.sheetnames)
# 2.2 选择sheet
sheet = workbook
print(sheet.max_row) # 最大行号
print(sheet.max_column) # 最大列号
# 2.3 我们选择了sheet后就可以去操作数据了
# cell = sheet.cell(1, 1) # 获取到单元格
# print(cell.value)
sheet 相关操作
from openpyxl import load_workbook
# 1. 打开Excel文件
workbook = load_workbook("p1.xlsx")
# 2. 选择sheet
# 2.1 获取所有sheet
# print(workbook.sheetnames)
# 2.2 选择sheet
# sheet = workbook
# 2.3 基于索引的方式获取sheet
# sheet = workbook.worksheets
# 3. 获取到所有的sheet
# for name in workbook.sheetnames:
# sheet = workbook
# cell = sheet.cell(1, 1)
# print(cell.value)
读单元格的数据
from openpyxl import load_workbook
# 1. 打开Excel文件
workbook = load_workbook("p1.xlsx")
# 2 获取sheet
sheet = workbook.worksheets
# 获取到第N行第N列的单元格
# cell = sheet.cell(1, 2)
# print(cell.value)
# 获取到某个单元格
# cell = sheet
# print(cell.value)
# print()
# for cell in sheet: # 获取到第一行的内容
# print(cell.value)
# 获取到所有的行的数据 获取到一列的值
# for row in sheet.rows:
# print(row.value)
# 获取到所有的列的数据 获取到一行的值
for col in sheet.columns:
print(col.value)
写Excel
# 在Excel中想要写文件 大致可以分为两种
# 1. 在原有的Excel的基础上写内容
# 2. 在一个新的Excel里面写内容
1. 打开Excel表格
2. 找到单元格 修改写入内容
3. 保存
# from openpyxl import load_workbook
#
# # 1. 打开Excel文件
# workbook = load_workbook("p1.xlsx")
# # 2 获取sheet
# sheet = workbook.worksheets
#
# # 获取到第N行第N列的单元格
# # cell = sheet.cell(1, 2)
# # print(cell.value)
#
# # 获取到某个单元格
#
# # cell = sheet
# # print(cell.value)
#
# # print()
# # for cell in sheet: # 获取到第一行的内容
# # print(cell.value)
#
#
# # 获取到所有的行的数据 获取到一列的值
# # for row in sheet.rows:
# # print(row.value)
#
# # 获取到所有的列的数据 获取到一行的值
# for col in sheet.columns:
# print(col.value)
# from openpyxl import workbook
# wb = workbook.Workbook() # 创建一个Excel会默认有一个sheet 就叫Sheet
# 1. 修改sheet名称
# sheet = wb.worksheets
# sheet.title = ’数据集’
# wb.save(’p2.xlsx’)
# 2. 创建一个新的sheet 还可以设置颜色
# sheet = wb.create_sheet(’工作计划’, 1)
# sheet.sheet_properties.tabColor = ’FFB6C1’
# wb.save(’p2.xlsx’)
# 3. copy sheet
# sheet = wb.create_sheet(’工作计划’)
# sheet.sheet_properties.tabColor = ’FFB6C1’
#
# new_sheet = wb.copy_worksheet(wb)
# new_sheet.title = ’新的计划’
# wb.save(’p2.xlsx’)
# print(wb.sheetnames)
# sheet = wb.worksheets
# cell = sheet.cell(1, 1)
# cell.value = ’哈哈哈’
#
# wb.save(’p2.xlsx’)
from openpyxl import load_workbook
# 1. 打开Excel文件
workbook = load_workbook("p2.xlsx")
# 2 获取sheet
sheet = workbook.worksheets
# 1. 获取某个单元格 修改值
# cell = sheet.cell(1, 1)
# cell.value = ’哈哈哈’
# wb.save(’p2.xlsx’)
# 2. 获取某个单元格 修改值
# sheet = ’光’
# workbook.save(’p2.xlsx’)
# cell_list = sheet
# for row in cell_list:
# for cell in row:
# cell.value = ’新的值’
# workbook.save(’p1.xlsx’)
for row in sheet.iter_rows(min_row=5, min_col=1, max_col=7, max_row=10):
for cell in row:
cell.value = ’oo’
workbook.save(’p1.xlsx’)
r row in sheet.iter_rows(min_row=5, min_col=1, max_col=7, max_row=10):
for cell in row:
cell.value = ‘oo’
workbook.save(‘p1.xlsx’)
用python操作excel数据之避坑秘技
用python操作excel表里的数据非常方便,可以把不同报表,不同类型的数据各种乾坤大挪移,汇集到一起进行展示。但初学者可能会遇到一些大坑,百思不得其解,而不得不放弃这个神器。现把我在自学过程中遇到的一些坑与大家分享,给初学者参考,欢迎批评指正!
坑一:用pandas的to_excel写入EXCEL时,会把原数据清空。
解决方案:先用openpyxl的load_workbook打开工作薄,再用pandas的ExcelWriter新建写入器,把之前打开的工作薄赋值给写入器的工作薄。
坑二:把带有公式的sheet1数据导入再写入sheet2时,会发现带公式的数据全部为空。
解决方案:可用win32com.client中的Dispatch把EXCEL表打开再保存。
坑三:当把复制文件,新建文件,打开保存文件,数据写入都写在一个程序时,往往由于EXCEL打开保存时间较长而与后续程序冲突报错。
解决方案:每个环节建模块顺序执行,各环节间用time.sleep隔开。
Python办公自动化之操作Excel(一)
处理Excel的库主要有xlrd、xlwt、xlwings 和 openpyxl。xlrd、xlwt、xlwings可以用于处理Excel 2010文档之前的文档,而openpyxl是用于处理Excel 2010文档的Python库。Workbook-工作簿、Worksheet-工作表、Cell-单元格是openpyxl库中的三大要素。单元格用来存储数据,工作表即excel中的Sheet,工作簿由多个工作表组成,可以理解为excel文件。本文主要介绍如何创建excel文件。
第一步就是安装依赖库了,pip install openpyxl。
第二步创建-以员工表为例
这样就完成了表的创建。
python和pandas处理excel(2)
$ pip install pandas
$ python -i
Empty DataFrame
Columns:
Index:
如果出错,提示
ModuleNotFoundError: No module named ’openpyxl’ 表示没有安装openpyxl包
运行下面的命令即可
pip install openpyxl
如果出错,提示
ImportError: Missing optional dependency ’xlrd’ 表示没有安装xlrd包
运行下面的命令即可
pip install xlrd
Python处理Excel文件(csv, xls, xlsx)
Excel文件格式主要有csv,xlsx和xlsx,对于不同的格式,我们使用不同的包来进行处理。
其中, encoding=’utf-8-sig’ 是为了编码正常可以正确显示中文, spamreader 中的每一个 row 为list格式,可以循环取出每个单元格的值。
结果:
如果csv文件是数据类的,那么使用 pandas 包读写数据会更方便。
结果:
参数:
结果:
参数:
Excel文件有三层对象:工作薄、工作表和三元格,分别对应 openpyxl 包中的workbook、sheet和cell。
注 : openpyxl 功能全面,还支持:合并单元格、数学运算、单元格格式、迭代器 ws.iter_rows() 操作等。
注 : xlrd 打开为只读模式,不可修改。
结果:
结果:
python和哪个第三方库组合能处理Excel数据
Python和第三方库组合处理Excel数据的有很多,常见的有:xlwings、xlsxwriter、openpyxl、xlwt、xlrd、xluntils、pyExcelerator等等。
不同的库用法也有些不同,其实个人觉得首先还是需要把Excel本身用好,本身用好了,其他编程的用起来就会省事得多了。
python处理excel表需要先把表内容存为列表或元组吗
在处理 Excel 表格时,通常建议将表格内容存储为列表或元组,这样可以更方便地进行数据处理和操作。将表内容存储为列表或元组的好处包括:
数据结构清晰:将表格内容存储为列表或元组可以使数据结构更加清晰明了,每个元素代表一个行或记录,内部的列表或元组则对应行中的各个单元格或字段。
索引和切片:使用列表或元组可以方便地通过索引或切片来访问和操作表格中的特定行、列或单元格,以及进行数据筛选和处理。
遍历和迭代:将表格内容存储为列表或元组可以更方便地进行遍历和迭代操作,以便对每个行或记录进行处理。
兼容性和灵活性:使用列表或元组存储表格内容可以更好地与其他 Python 数据结构和库进行集成,如 Pandas、NumPy 等,从而提供更多数据处理和分析的功能和灵活性。
当然,如果你处理的是小型的 Excel 表格,也可以选择直接使用 Pandas 或其他相关库来读取和处理 Excel 数据,这些库内部会将数据存储为 DataFrame 或其他类似的数据结构,提供了更强大的数据处理和分析功能。
总的来说,将 Excel 表格内容存储为列表或元组可以提供更好的可读性、灵活性和数据处理能力,但具体使用哪种数据结构还需要根据项目需求和数据处理的复杂度来决定。
python操作excel真的那么神奇吗
所谓的神奇只不过是提供了大量第三方包,类似vba,将许多繁琐的手动操作转换为代码操作,提高了处理速度和工作效率,下面我简单介绍3个常用的pythonexcel处理包,感兴趣的朋友可以尝试一下:
xlrd和xlwt
这是2个非常基础的pythonexcel处理包,在日常excel处理中经常会用到,其中xlrd专门用去读取excel,xlwt专门用于写入excel,常见的单元格读写/合并、样式背景色的设置以及行高/列高的设置等这2个包都可以轻松完成,对于一些繁琐、重复的操作可以使用一下这2个包,简单易学,非常容易入门,而且官方自带有非常详细的教程,非常适合初学者学习和掌握:
openpyxl
这也是桌面端比较常用的一个pythonexcel处理库,和xlrd、xlwt类似,openpyxl融合了excel的读写,因此不需要单独分开编码,常见的样式设置、图片/表格插入、公式/函数使用、单元格合并等基本操作这个模块都可以轻松完成,如果你有一定python基础,熟悉openpyxl来说非常容易,官方有非常详细的教程示例,所有代码都可以直接运行,需要注意的是openpyxl只适用于xlsx/xlsm,xls并不适用:
pandas
这是python针对数据处理专门提供的一个第三方模块,在日常实验、报表等数据处理中经常会用到,内置了大量函数和类型(series/dataframe),可以轻松处理各种常见的文件格式,包括excel、csv、json、txt等,操作灵活、功能强大,只需简单几行代码就可快速加载处理数据,还支持数据可视化,在数据分析方面有着非常广泛的应用,非常值得学习,可以大大减少工作量,提高工作效率:
当然,除了以上3个常见的pythonexcel处理库,xlutils等也都非常不错,基本使用方式和原理都是一样的,官方也有参考代码和示例,只要你熟悉一下很快就能掌握的,至于选择哪个包,简单一些就是xlrd/xlwt、openpyxl,复杂一些就是pandas,神奇倒不至于,就是处理起来更方便而已,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。

更多文章:
知名女星孙侨璐于跨年夜,心梗猝死,年仅25岁!一一一写给年轻人?1月2日演员孙侨潞离世,说好的来日方长转眼就是别离
2026年10月15日 10:40
avantage怎么设置为中文(Avantage安装丢失GIT)
2026年10月15日 03:00
activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)
2026年10月14日 20:30







