python技巧分享Excel创建和修改
作者:zzxiaoma 发布时间:2022-01-09 12:04:59
openpyxl
是一个读写Excel文档的Python
库,能够同时读取和修改Excel文档。
openpyxl是一个开源项目,因此在使用之前需要先进行安装:
pip install openpyxl
openxpyxl
中有三个不同层次的类,分别是Workbook
、Worksheet
和Cello。Workbook是对Excel工作簿的抽象,Worksheet是对表格的抽象,Cell是对单元格的抽象。每一个类都包含了若干属性和方法,以便于我们通过这些属性和方法获取表格中的数据。一个Workbook
对象代表一个Excel文档,因此在操作一个Excel之前,应该先创建一个Workbook
对象。对于创建一个新的Excel文档,直接进行Workbook类调用即可。对于读取一个已有的Excel文档,可以使用openxpyxl模块的load_workbook函数。该函数接受多个参数,但只有filename参数为必传参数。filenmame
可以是一个文件名,也可以是一个打开的文件对象。
Workbook对象有很多的属性和方法:
1、active:获取活跃的Worksheet;
2、read_only:是否以read_only模式打开Excel文档;
3、encoding:文档的字符集编码:
4、properties:文档的元数据,如标题,创建者,创建日期等;
5、worksheets:以列表的形式返回所有的Worksheet。
Workbook对象的方法:
1、get_sheet_names:获取所有表格的名称;
2、get_sheet_by_name:通过表格名称获取Worksheet对象;
3、get_active_sheet:获取活跃的表格;
4、remove_sheet:删除一个表格;
5、create_sheet:创建一个空的表格;
6、copy_worksheet:在Workbook内拷贝表格。
常用的Worksheet属性:
1、title:表格的标题;
2、dimensions表格的大小,这里的大小是指有含有数据的表格大小。
3、max_row表格的最大行;
4、min_row表格的最小行;
5、max_column表格的最大列;
6、min_column表格的最小列;
7、rows按行获取单元格(Cell对象);
8、columns按列获取单元格(Cell 对象);
9、freeze_panes冻结窗格;
10、values按行获取表格的(数据);
import openpyxl
wb = openpyxl.load_workbook('book2.xlsx')
print(wb.active)
print(wb.read_only)
print(wb.worksheets)
print(wb.get_sheet_names())
print(wb.get_active_sheet())
sheet = wb.get_sheet_by_name('Sheet1')
print(sheet.max_row)
for row in sheet.values:
print(*row)
创建和修改excel:
from openpyxl import Workbook
wb = Workbook() #默认创建一个sheet
sheet = wb.active
sheet.title = 'test1'
sheet0 = wb.create_sheet(index=0, title="test0") #又创建一个sheet,并且放到第一位
sheet0['A1'] = '姓名'
sheet0['A2'] = 'ok'
wb.save('abc.xlsx')
如果文件已经存在,会删除文件重新建立。
例子:求RECORD
这一列值的合计,并写入下最后一行
import openpyxl
wb = openpyxl.load_workbook('test.xlsx') #打开文件
sheet = wb.get_sheet_by_name('Sheet1') #获取第一个sheet
sum = 0.00
for row in range(2,sheet.max_row+1): #从第二行到最后一行
scores = sheet.cell(row,column=3).value #获取第三列
sum = sum + scores
sheet.cell(column=3, row=sheet.max_row+1, value=sum) #最后一行赋值
wb.save('test.xlsx')
来源:https://blog.51cto.com/u_3764469/5038928
猜你喜欢
- 影响 JavaScript性能的另外一个杀手就是递归,在上一节中提到采用memoization技术可以优化计算数值的递归函数,但memoiz
- 我一般看书喜欢做笔记,这份笔记不知道是什么时候看的什么书做的,也忘了是否是摘自其他地方,总之一份汇总,应该适合初学者,对于Javascrip
- 经过一个阶段的asp学习,下面我们结合所学过的内容建立一个最简单的聊天室,虽然很简单,但是大家可以通过他来掌握一个聊天室建立的基本过程,并且
- 问题说明最近在写爬虫,由于单个账号访问频率太高会被封,所以需要在爬虫执行一段时间间隔后自己循环切换账号所以就在想,有没有像单片机那样子设置一
- 最近看到一个词叫css reset。什么叫做css reset呢?我理解为重置css,也就是重置默认样式。我在HTML下的默认样式中讲到,一
- 1、汉语分词的由来使用ASP开发的中小企业的网站,对于站内搜索,往往只是简单的通过SQL语句匹配数据库。对于比较短的词语搜索,这个方法是有效
- 如果当前绝对定位的元素需要透明(没啥内容、且不设置背景),背景元素有内容透出来的时候,IE6/IE7响应的不是期望的当前元素,而是背景元素。
- 为了得到更加清晰的图像我们需要通过技术对图像进行处理,比如使用对比度增强的方法来处理图像,对比度增强就是对图像输出的灰度级放大到指定的程度,
- Windows客户端业务群产品营销主管斯蒂芬最近在向记者示范Internet Explorer 8 Beta2版浏览器的技术特征时标识,与用
- 作为 Web 设计者,我们希望实现鹤立鸡群的设计,要做到这一点,要开阔眼界。欧美同东方的 Web 设计很不同,因为属于不同的文化。韩国不仅为
- 1、程序执行代码:#Author by Andy#_*_ coding:utf-8 _*_import os,sys,timeBase_di
- 如今大部分网站仍然采用表格嵌套内容的方式来制作网站,虽然此方法对于我们来说比较熟悉、比较上手;但是,它却阻碍了一种更好的、更有亲和力的、更灵
- 一个几百行代码做出http/https代理服务器的脚本,启动即可做http https透明代理使用python proxy.py 8992使
- 切换按钮是QPushButton的特殊模式。它是一个具有两种状态的按钮:按压和未按压。我们通过这两种状态之间的切换来修改其它内容。#!/us
- 简介pandas中的DF数据类型可以像数据库表格一样进行groupby操作。通常来说groupby操作可以分为三部分:分割数据,应用变换和和
- 本文实例讲述了php遍历CSV类。分享给大家供大家参考。具体如下:<?phpclass CSVIterator implements
- 在记忆里,关于时间方面常的SQL也就下面这两个了,大多数朋友问题中所涉及到的数据库都ACCESS的,在些,也就写出这两SQL了。年代久远,目
- LearningjQuery.com 博客帖子列表的左边有一个很酷的日期,如图:从图中我们看到,“2009”垂直排列在右侧。用Firebug
- 具体代码如下:Function ASTCreateFtpSite(IPAddress, RootDirectory,&n
- 0 引言上周被一则新闻震惊到了,《2454万元大奖无人认领!福彩史上第二大弃奖在广东中山产生 》,在2019年5月2日开奖的双色球中,广东中