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
投稿
猜你喜欢
- 1.无效数据的概念无效数据是指不符合数据收集目的或数据收集标准的数据。这些数据可能来自于不准确的测量、缺失值、错误标注、虚假的数据源或其他问
- 关于最近要在python下做可视化界面的设计,想到之前用QtDesigner来画界面很是方便,当时画完之后都要手动在终端输入 pyuic5
- 一、Hive介绍hive: 由 Facebook 开源用于解决海量结构化日志的数据统计工具。Hive 是基于 Hadoop 的一个数据仓库工
- 首先介绍一下什么是桑葚图?桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的
- Pyqt5安装并配置到pycharm方法:教你如何用pycharm安装pyqt5及其相关配置一、简介QLabel是界面中的标签类,继承自QF
- 一、简介我们在这里采用Python中的matplotlib来实现曲线图形的绘制。matplotlib是著名的python绘图库,它提供了一整
- 废话不多说了,直接给大家贴代码了,具体代码如下所示:-- 开窗函数:在结果集的基础上进一步处理(聚合操作)-- Over函数,添加一个字段显
- 如下所示:fp = file('data.txt')lines = []for line in fp: lin
- 功能:扫描当前目录下所有CSV文件并对其中文件进行统计,输出统计值到CSV文件pip install pandasimport pandas
- 本文适用范围:全面阐述MySQL数据库的各种操作,分虚拟主机和服务器两种情况。虚拟主机1、通过PHPMyAdmin的导入导出功能,这个软件一
- 在 MySQL 下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,
- Python需要使用标识符给变量命名,其实标识符就是用于给程序中变量、类、方法命名的符号(简单来说,标识符就是合法的名称标识符需要以字母或下
- 表格内容根据票据日期升序(这里是已经排序后的效果)上代码代码中data的内容如下根据paper_date排序,因为目前这种格式不支持比较,需
- 前言在python列表的元素删除操作中, del, pop(), remove()很容易混淆, 下面对三个语句/方法作出解释del语句del
- 如下所示:# coding=utf-8# 用来处理数字,大于上限的数字置零f = open("/home/chuwei/桌面/tr
- 由于 Ubuntu 中的汉字输入实在是太不友好了,所以装了个 搜狗输入法,好不容易把 搜狗输入法装好,本以为可以开开心心的搞代码了,然而。。
- 策略模式策略模式是一个经典的模式,简化代码。电商领域有个功能明细可以使用“策略”模式,就是根据客户的
- 一、整数python2中整形可以分为一般整形和长整形,但是在python3中,两者以及合二为一了,只有整形。python中的整形是具有无限精
- 打开一个Project在导航区带出多个Project将会影响PyCharm的运行速度,解决这个问题的方式只打开一个即可。有时候打开一个Pro
- 1. 简介Python 读写文件的二进制数据需要使用到struct模块,进行C/C++与Python数据格式的转换。2. struct模块介