编程小白的自学笔记十五(python办公自动化操作EXCEL表格)

简介: 编程小白的自学笔记十五(python办公自动化操作EXCEL表格)

前言

在自学笔记一的时候就已经学习了表格的操作,不过那时学的是xlwt库,这次我们学习的是openpyxl库。


一、xlwt库与openpyxl库的区别

xlwt和openpyxl都是Python中处理Excel文件的库,但它们有一些区别。其中,xlwt针对Ecxec2007之前的版本,即.xls文件,其要求单个sheet不超过65535行;而openpyxl则主要针对Excel2007之后的版本(.xlsx),它对文件大小没有限制 。

此外,两者还有一些其他的区别,例如:

xlwt单个表格只能存储65000多行,而openpyxl单个sheet可以存储101万行;

xlwt的文件名后缀为xls;而openpyxl的文件名后缀为xlsx;

xlwt写入数据时从0行0列开始;openpyxl从1行1列开始。

二、创建表格

1、导入模块

首先,使用import导入openpyxl库,以便能够使用其中的类和函数。

2、创建文件

使用openpyxl库里面的Workbook()函数创建一个新的excel文件。

3、保存并命名文件

使用save方法保存文件,并将文件名作为传参传进去。

完整代码如下:

import openpyxl
wb=openpyxl.Workbook()
wb.save('测试0709.xlsx')

这时我们就在python文件的同目录下创建了“测试0709”的excel文件。

三、打开表格

打开表格使用load_workbook()函数就行,具体代码如下:

wb=openpyxl.load_workbook(测试0709.xlsx)

四、输入内容

1、选取工作表

使用过excel的都知道,一般创建好表格文件以后,里面会有三个工作表,默认使用的是第一个工作表,即sheet1,但是我试了一下,用openpyxl创建的工作表只有一个sheet,我们可以使用workbook.active来选取它,workbook.active的意思是选取当前活跃工作表。我们也可以直接传参来指定工作表,例如:

import openpyxl
wb=openpyxl.Workbook()
ws=wb[‘sheet’]

通过传入工作表的名字来选择工作表。

2、在工作表中输入数据

最简单的方法就是直接输入,就好像我们正常人操作excel表格,比如我们要在A1输入‘序号’,B2输入‘数值’,那么我们就直接写

ws[A1]=序号

Ws[B1]=数值

也可以先定位,再使用value赋值,例如:

ws.cell(row=1,column=3,value='备注')

基于以上的方法,我们准备多录入点数据,以备后面的其他测试,代码如下:

import random
import openpyxl
wb=openpyxl.load_workbook('测试0709.xlsx')
ws=wb.active
ws['A1']='序号'
ws['B1']='数值'
ws.cell(row=1,column=3,value='备注')
for i in range(2,100):
    ws.cell(row=i,column=1,value=i-1)
    ws.cell(row=i,column=2,value=random.randint(1,100))
wb.save('测试0709.xlsx')

在上面的代码中,我们在第一列录入了序号,从1到98,第二列我们使用随机函数,随机录入了100以内的正整数。备注是空的没有填数据。

五、读取内容

现在表格里面已经有很多内容了,我们该如何读取其中的内容呢?

最简单的方式就是输入数据所在的坐标,然后输出,例如:

import openpyxl
wb=openpyxl.load_workbook('测试0709.xlsx')
ws=wb.active
print(ws['B3'].value)

下面我们来做一个简单的习题,比如说输出数值大于50的序号。

看到这个题目,我的思路首先是取出第一行的数据,然后判断B列的数值是否大于50,如果大于50,则输出A列的序号,我们尝试写下代码:

import openpyxl
wb=openpyxl.load_workbook('测试0709.xlsx')
ws=wb.active
for i in range(2,len(ws['A'])+1):
    if ws[f'B{i}'].value>50:
        print(ws[f'A{i}'].value)

运行结果是成功的,我还想到一个方法,不是每次取出每一行的内容,而是取出B列的内容,在进行大小比较,通过值的行属性来输出A列的值,我们来写下,看代码:

import openpyxl
wb=openpyxl.load_workbook('测试0709.xlsx')
ws=wb.active
B=ws['B']
for bi in B:
    if bi.value=='数值':
        pass
    else:
       if int(bi.value)>50:
            print(ws.cell(row=bi.row,column=1).value)

经运行也是成功的。

下面再将难度升级,将大于50的数据重新保存到一个新的EXCEL表格中,下面我们来试一试,看代码:

import openpyxl
wb=openpyxl.load_workbook('测试0709.xlsx')
ws=wb.active
rows=ws.rows
lis=[]
for row in rows:
    lis1=[]
    if row[1].value=='数值':
        pass
    else:
        if int(row[1].value)>50:
            for i in range(0,2):
                lis1.append(row[i].value)
            lis.append(lis1)
wb1=openpyxl.Workbook()
ws1=wb1.active
ws1['A1']='序号'
ws1['B1']='数值'
for x in lis:
    ws1.append(x)
wb1.save('大于50的表格.xlsx')

成功运行了,创建了一个新表格,里面数据都是数值大于50的,对里面一些代码进行说明:

“rows=ws.rows”,是将表格里的每一行作为列表全部返回,我们对每一行的数值进行判断完毕后,所以还是按照列表格式把每个单元格的数据添加到列表里,最后再把数据输入到新的EXCEL表格中。

六、插入删除行和列

在openpyxl中,可以使用以下方法插入、删除行和列:

1、插入行

在指定位置插入一行

ws.insert_rows(index=2)

在最后一行插入一行

ws.insert_rows(index=ws.max_row)

2、删除行

删除指定位置的行

ws.delete_rows(index=1)

删除最后一行

ws.delete_rows(index=ws.max_row-1)

3、插入列

在指定位置插入一列

ws.insert_cols(index=2)

在最后一列插入一列

ws.insert_cols(index=ws.max_column)

4、 删除列

删除指定位置的列

ws.delete_cols(index=1)

删除最后一列

ws.delete_cols(index=ws.max_column-1)


总结

openpyxl是一个Python库,用于读取、写入和操作Excel文件。它支持.xlsx格式的Excel文件,并提供了丰富的API来处理这些文件。以下是openpyxl的一些主要特点:

1、读写Excel文件:openpyxl可以读取和写入Excel文件,包括创建新的工作表、插入行和列、设置单元格值等操作。

2、支持多种数据类型:openpyxl支持多种数据类型,包括数字、日期、时间、字符串等。

3、提供公式计算:openpyxl可以对Excel文件中的数据进行计算,并将结果保存到单元格中。

4、支持样式设置:openpyxl可以设置单元格的字体、颜色、边框等样式。5、支持图表生成:openpyxl可以生成各种类型的图表,包括折线图、柱状图、饼图等。

6、兼容性好:openpyxl与Microsoft Excel的兼容性非常好,可以在Windows和Mac OS X上运行。

总之,openpyxl是一个功能强大、易于使用的Python库,可以帮助用户轻松地处理Excel文件。

目录
打赏
0
0
0
0
2
分享
相关文章
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
Python实现常用办公文件格式转换
本文介绍了如何使用Python及其相关库(如`pandas`、`openpyxl`、`python-docx`等)实现办公文件格式间的转换,包括XLS转XLSX、DOC转DOCX、PPT转PPTX、Word转PDF及PDF转Word,并提供了具体代码示例和注意事项。
216 89
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
128 80
|
2月前
|
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
75 5
Python高性能编程:五种核心优化技术的原理与Python代码
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
250 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
3月前
|
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
56 14
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
129 2
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
74 10

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等