Python办公自动化之Excel介绍
作者:ID1996. 发布时间:2021-04-19 11:06:07
标签:Python,Excel
前言
Python处理Excel的包是openpyxl,其支持操作的文件类型为:.xlsx, .xlsm, .xltx, .xltm
pip install openpyxl
安装完成之后,我们应该了解一下Excel的组成部分,如下图所示:
Excel文件中三个对象
workbook: 工作簿,就是一个excel文件sheet:工作表,一个workbook有多个工作表,表名识别,如“sheet1”,“sheet2”等。cell: 单元格,存储数据对象
一、创建、打开excel文件
1、创建空白工作簿
创建一个空的工作簿,并将默认工作表重命名
#导入库中的工作簿
from openpyxl import Workbook
#创建工作簿
wb = Workbook()
#获取当前所在的sheet,激活
sheet = wb.active
#设置工作表名称,也可以不设置,不设置工作表默认名称为Sheet
sheet.title = "工作表1"
print(sheet.title) #打印工作表名字
#保存表
wb.save("new_excel.xlsx")
如下成功创建
2、打开已有文件
from openpyxl import Workbook, load_workbook
#加载excel文件
wb = load_workbook("new_excel.xlsx")
#获取所在的工作表
sheet = wb.active
#打印工作表名
print(sheet.title) #输出"工作表1"
二、工作表中的数据操作
往excel中写数据是按照坐标的方式进行写入的,每个单元格都可以用 “纵坐标横坐标”表示,如下位置:
写数据
方法一:自定义位置写入数据
如下在C3和D3的地方写入数据
#导入库中的工作簿
from openpyxl import Workbook, load_workbook
#加载文件
wb = load_workbook("new_excel.xlsx")
#获取文件的所在工作表
sheet = wb.active
#打印工作表名
print(sheet.title) #输出工作表1
sheet["C3"] = "girl"
sheet["D3"] = "beautiful"
#保存
wb.save("new_excel.xlsx")
方法二:每行自动添加数据
会自动从上到下在有数据的那一行的下一行开始从左到右写入想要写入的数据
#导入库中的工作簿
from openpyxl import Workbook, load_workbook
#加载文件
wb = load_workbook("new_excel.xlsx")
#或者文件的所在工作表
sheet = wb.active
#打印工作表名
print(sheet.title) #输出工作表1
sheet.append([11,22,33,44,55])
sheet.append(['aa','bb','cc','dd','ee'])
#保存
wb.save("new_excel.xlsx")
读数据
表格内容如下
#导入库中的工作簿
from openpyxl import Workbook, load_workbook
#加载文件
wb = load_workbook("cma.xx.xlsx")
# 1.打印所有的工作表
print(wb.sheetnames) #输出 ['cma.xx', 'cma2.xx']
# 2.选择一个工作表进入
sheet = wb["cma.xx"]
#print(sheet) #输出 <Worksheet "cma.xx">
# 3.获取单元格A2的值
print(sheet["A2"].value) #输出 http://api.data.xxx.cn:8090
# 4.获取多个单元格的值,在同一行中
for cell in sheet["A2:C2"]:
for i in cell:
print(i.value) #输出具体单元格值
# 5.在不同的行中
for cell in sheet["A2:B4"]:
for i in cell:
print(i.value) #输出具体单元格值
# 6.打印表中的所有数据
for row in sheet: #遍历每一行
for i in row: #遍历每一行中的每一个单元格
print(i.value,end=", ") #打印每行的单元格数据
print()
# 7.获取指定范围单元格中的数据
for row in sheet.iter_rows(min_row=2, max_row=5, max_col=6):
for i in row:
print(i.value,end=', ')
print()
# 8.按列的方式遍历,即以纵向的方式读取数据
for row in sheet.columns: #从第一列数据开始遍历
for i in row: #获取每一列中的每一个数据
print(i.value,end=", ")
print()
删除数据
1. 删除整列数据
#导入库中的工作簿
from openpyxl import Workbook, load_workbook
#加载文件
wb = load_workbook("cma.xx.xlsx")
# 选择一个工作表进入
sheet = wb["cma.xx"]
sheet.delete_cols(2) #指定删除第二列
sheet.delete_cols(2,3) #删除第二列的往下三列,包括第二列
wb.save("cma.xx.xlsx")
三、csv文件转xlsx
在进行文件转换时我们需要关注两个文件的编码方式,在使用pandas读取csv文件时,也需要指定解码方式
1. 首先查看需要转换的ccv文件的编码方式,使用记事本打开csv文件,查看-状态栏,可以看到文件下方有编码方式:ANSI
2. 脚本如下
import pandas as pd
def csv_to_xlsx():
csv = pd.read_csv('cma.xx.csv', encoding='ANSI')
csv.to_excel('2.xlsx', sheet_name='data', index=False)
if __name__ == '__main__':
csv_to_xlsx()
来源:https://blog.csdn.net/qq_44159028/article/details/120285675
0
投稿
猜你喜欢
- 常用功能 mean(data)mean(data)用于求给定序列或者迭代器的算术平均数。import statisticsexample_l
- php5.2新增的json功能是非常受欢迎的,但是经过测试发现, json_encode对中文的处理是有问题的, 1.不能处理GB编码,所有
- 问题:安装lightgbm成功后,无法在anaconda jupyter notebook中导入lightgbm包原因:lightgbm默认
- 本文转自微信公众号:"算法与编程之美" Python用HBuilder创建交流社区APP 基于P
- 一、概述spark 有三大引擎,spark core、sparkSQL、sparkStreaming,spark core 的关键抽象是 S
- pycharm创建sql文件及模板创建模板pycharm默认新建文件选项中没有sql文件,每次通过文件末尾添加.sql识别文件格式很麻烦。可
- 在默认情况下,大多数浏览器都会将有序列表中的数字序列的与其列表文字内容显示为相同的字体。这篇快速教程将教你如何使用有序列表(ol)和段落(p
- 1引言实现磁带备份数据的功能有两方面的困难:首先,SQL Server(以下简称SQL)所提供的数据库的整体备份及恢复功能不能直接满足本系统
- ImageField的使用笔记今天完善作业写的订单系统,主要是给每一个菜品增加图片,看起来美观一些,但是没想到这个小小的需求花了我一天时间,
- 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句
- 从最基础的说起。本教程中,所有IE 均指 WindowXP + IE 6.0, 所有 FF 均指 FF 1.5。不用编程部分1.1 Form
- oracle服务器没有建立目标数据库的TNS时,在客户端(有权限的情况下)建立dblink语法如下: create database lin
- 这篇文章主要介绍了Python统计时间内的并发数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- BrowserPlus 到底是什么,又能做什么?BrowserPlus 是 Yahoo! 最近刚发布一个 Web 扩展的平台:终端用户需安装
- 调用re库,通过使用compile、findall获取字符串中的emailimport reemail=re.compile(r
- #region 读写xml文件的2个小函数,2005 4 2 by hyc public void 
- Django 为未来的开发人员提供了许多功能:一个成熟的标准库,一个活跃的用户社区,以及 Python 语言的所有好处。虽然其他
- 这篇文章是为了对网络模型的权重输出,可以用来转换成其他框架的模型。import tensorflow as tffrom tensorflo
- 什么是迭代器迭代是 python 中访问集合元素的一种非常强大的一种方式。迭代器是一个可以记住遍历位置的对象,因此不会像列表那样一次性全部生
- Python2默认是不支持中文的,一般我们在程序的开头加上#-*-coding:utf-8-*-来解决这个问题,但是在我用open()方法打