Python数据分析之Excel

2023-09-19 23:00:57


1、openpyxl概述

openpyxl是一个用于处理xlsx格式Excel表格文件的第三方python库,几乎支持Excel表格的所有操作

基本概念:

  • Workbook:相当于一个Excel文档,每个Workbook对象都是一个独立的Excel文件
  • Sheet:Excel文档中的表单,每个Excel文档中至少有一个Sheet
  • Cell:Excel单元格,是不可分割的基本数据存储单元

安装:

pip install openpyxl

2、Excel写入

2.1、新建

from openpyxl import load_workbook, Workbook

# 新建一个Excel文档(初始化)
workbook = Workbook()
# 初始化/获取一个Sheet(新创建的Excel默认自带名为Sheet的表单)
# sheet = workbook.active
# 创建一个Sheet,新建的多个Sheet默认插在后面
sheet = workbook.create_sheet("Sheet1")
# 创建一个Sheet,插入到最前面
# sheet = workbook.create_sheet("Sheet1", 0)

2.2、添加数据

'''
append(list):在已有的数据后面追加写入(增量写入)
'''
# 定义表头(插入一条数据)
sheet.append(['id', 'name', 'age', 'addr'])
# 批量插入数据
data = [
    ['001', 'Tom', 18],
    ['002', 'Jerry', 17, 'US'],
    ['003', 'Alice', 20]
]
for row in data:
    sheet.append(row)

# 保存Excel-Sheet1
workbook.save(r'C:\Users\cc\Desktop\openpyxl.xlsx')

2.3、单元格格式

from openpyxl.styles import Font, Border, Side, PatternFill, colors, Alignment

# 1)字体
# 设置A1单元格字体风格为Times New Roman,大小16,粗体、斜体,蓝色
sheet['A1'].font = Font(name='Times New Roman', size=16, bold=True, italic=True, color=colors.BLUE)

# 2)对齐方式
# 设置单元格horizontal水平和vertical垂直对齐方式,其他值:left、right
sheet['A1'].alignment = Alignment(horizontal='center', vertical='center')

# 3)行高和列宽
# 设置行高
sheet.row_dimensions[1].height = 25
# 设置列宽
sheet.column_dimensions['A'].width = 15

# 4)边框
# 设置边框四个方向的线条种类
left, right, top, bottom = [Side(style='thin', color='000000')] * 4
# 将各方向线条作为参数传入Border方法
sheet['A1'].border = Border(left=left, right=right, top=top, bottom=bottom)

# 5)合并、拆分单元格
# 合并单元格
sheet.merge_cells('A1:B2')
# 拆分单元格
sheet.unmerge_cells('A1:B2')

# 保存Excel-Sheet2
workbook.save(r'C:\Users\cc\Desktop\openpyxl.xlsx')

3、Excel读取

'''
load_workbook(Excel):文件必须是xlsx格式,默认为可读可写
'''
workbook = load_workbook(r'C:\Users\cc\Desktop\openpyxl.xlsx')
# 读取指定Sheet
sheet = workbook.get_sheet_by_name('Sheet1')

# 追加一条记录
sheet.append(['004', 'Bob', 19, 'CN'])

# 保存Excel
workbook.save(r'C:\Users\cc\Desktop\openpyxl.xlsx')

4、openpyxl操作Excel之CRUD

添加数据见2.2节

4.1、查

# 获取所有Sheet表名,返回List
print(workbook.sheetnames)     # ['Sheet', 'Sheet1']

# 最大行数
print(sheet.max_row)
# 最大列数
print(sheet.max_column)

# 单元格访问
print(sheet['A1'].value)
print(sheet.cell(row=4, column=2).value)

# 访问行或列
print(sheet['A'])
print(sheet['A':'C'])
print(sheet[1])
print(sheet[1:3])
# 获取所有行或列
row_list = []
for row in sheet.iter_rows():
    row_ls = []
    col_len = len(list(sheet.iter_cols()))
    for cell in row:
        col_len -= 1
        row_ls.append(cell.value)
        if col_len == 0:
            continue
    row_list.append(row_ls)

print(row_list)
'''
[['id', 'name', 'age', 'addr'], ['001', 'Tom', 18, None], ['002', 'Jerry', 17, 'US'], ['003', 'Alice', 20, None]]
'''

4.2、改

# 修改指定值
sheet['C4'].value = 21
sheet.cell(row=4, column=4).value = 'CN'

# 修改操作后要保存
workbook.save(r'C:\Users\cc\Desktop\openpyxl.xlsx')

4.3、删

# 删除指定行或列
sheet.delete_rows(2)

# 删除Excel-Sheet
workbook.remove_sheet(sheet)
del workbook['Sheet']

# 删除操作后要保存
workbook.save(r'C:\Users\cc\Desktop\openpyxl.xlsx')

更多推荐

MATLAB向量化编程基础精讲教程

向量化编程是MATLAB中一种重要的编程技术,通过使用向量和矩阵运算代替循环,可以提高代码的执行效率和可读性。本文将介绍MATLAB向量化编程的基础知识,并提供多个案例代码,帮助读者理解和应用向量化编程。一、向量化编程基础知识:利用内置函数:MATLAB提供了许多内置函数,这些函数经过优化,能够高效地处理向量和矩阵操作

【图像去噪】【TGV 正则器的快速计算方法】通过FFT的总(广义)变化进行图像去噪(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋📋📋本文目录如下:🎁🎁🎁目录💥1概述📚2运行结果🎉3参考文献🌈4Matlab代码实现💥1概述【图像去噪】【TGV正则化器的快速计算方法】通过F

统一网关Gateway

2.5统一网关Gateway网关功能:身份认证和权限校验服务路由、负载均衡请求限流权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。路由和负载均衡:一切请求都必须先经过gateway,但网关不处理业务,而是根据某种规则,把请求转发到某个微服务,这个过程叫做路由。当然路由的目标服务有多个时,

蓝牙核心规范(V5.4)10.9-BLE 入门笔记之GAP

1.概述蓝牙核心规范的通用访问配置文件(GAP)部分定义了与设备发现和在两个设备之间建立连接有关的过程。如何执行数据的基本无连接通信、如何使用周期性广播(参见PADVB-LEPeriodicAdvertisingBroadcast)以及如何设置等时通信(参见LEBIS和LECIS-IsochronousCommunic

基于高校图书馆的用户画像、可视化、模型预测、推荐算法项目实现

需要本项目的可以私信博主获取源码及项目!!!本研究基于高校图书馆的借阅信息、馆藏图书信息、读者入馆信息、用户信息等多维度的数据表,首先将不同年份的数据拼接在一起,按照时间维度进行整合,并保证数据维度字段一致性。然后对数据进行清洗,其中包括空值的检测和处理,采用Python的正则表达式模块对某些字段进行约束约束和处理,比

ip地址的正则表达式

ip地址的正则表达式checkIpSpecial:{//验证IP地址validator:function(value){//varreg=/^((1?\d?\d|(2([0-4]\d|5[0-5])))\.){3}(1?\d?\d|(2([0-4]\d|5[0-5])))$/;这个正则表达式的意思是:以数字开头,紧接着

Redis缓存设计与性能优化最佳实践

开发规范与性能优化一、键值设计1.key名设计(1)【建议】:可读性和可管理性以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表名:id(2)【建议】:简洁性保证语义的前提下,控制key的长度,当key较多时,内存占用也不容忽视,例如:(3)【强制】:不要包含特殊字符反例:包含空格、换行、单双引

QT : 仿照QQ 完成弹出登录窗口,并实例化组件

1.运行效果图2.Headers#ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>classMainWindow:publicQMainWindow{Q_OBJECTpublic:MainWindow(QWidget*parent=nullptr);~

MS COCO数据集介绍以及pycocotools使用

MSCOCO数据集介绍以及pycocotools使用1、MSCOCO数据集简介2、MSCOCO数据集目录结构3、MSCOCO标注文件格式3.1使用Python的json库查看3.2使用官方cocoAPI查看4、目标检测验证任务mAP1、MSCOCO数据集简介2、MSCOCO数据集目录结构├──coco2017:数据集根

log4j2 日志保存至数据库

文章目录概述一、springmvc工程1.创建数据库日志表2.log4j2.xml引入JDBCAppender3.定义日志管理类4.编写日志输出代码5.运行结果6.完整代码二、springboot工程1.创建数据库日志表2.log4j2.xml引入JDBCAppender3.定义日志管理类4.遗留问题5.解决办法6.完

百度SEO优化基本原理(掌握SEO基础,提高网站排名)

随着互联网的迅速发展,越来越多的企业开始意识到网站优化的重要性,其中百度SEO优化是企业不可忽视的一项工作。本文将介绍百度SEO优化的基本概念、步骤、原理、解决方法和提升网站标题优化的方法。蘑菇号-www.mooogu.cn百度SEO优化是指针对百度搜索引擎的搜索算法进行网站优化,提高网站在百度搜索结果页面上的排名。主

热文推荐