[python3]Excel解析库-openpyxl
https://openpyxl.readthedocs.io/en/stable/
`openpyxl` 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。它允许开发者创建、修改和保存电子表格,而无需依赖 Microsoft Excel 软件本身。`openpyxl` 支持读取和写入 Excel 的工作簿(Workbook)、工作表(Worksheet)、单元格(Cell)以及样式等元素。
### 安装
要使用 `openpyxl`,首先需要安装它。可以通过 pip 工具来安装最新版本:
pip3 install openpyxl
### 基本用法
#### 创建一个新的工作簿```python
from openpyxl import Workbook# 创建一个新的工作簿对象
wb = Workbook()# 获取活动的工作表
ws = wb.active# 给工作表命名
ws.title = "Sample Sheet"# 写入数据到单元格
ws['A1'] = "Hello"
ws['B1'] = "World"# 保存文件
wb.save("sample.xlsx")
```#### 打开现有的工作簿```python
from openpyxl import load_workbook# 加载现有工作簿
wb = load_workbook('existing_file.xlsx')# 获取所有工作表的名字
print(wb.sheetnames)# 选择特定的工作表
ws = wb["Sheet1"]# 或者通过索引获取第一个工作表
ws = wb.worksheets[0]
```#### 遍历工作表中的行和列```python
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2, values_only=True):print(row) # 输出每一行的数据元组# 或者逐个访问单元格
for cell in ws["A"]:print(cell.value)
```#### 添加新的工作表```python
# 创建新的工作表并指定位置
ws2 = wb.create_sheet("My New Sheet", 0) # 在最前面插入新工作表
```#### 修改单元格样式```python
from openpyxl.styles import Font, Color, Alignment, Border, Side, PatternFill# 设置字体样式
cell = ws['A1']
cell.font = Font(name='Arial', size=14, bold=True, italic=False)# 设置对齐方式
cell.alignment = Alignment(horizontal="center", vertical="center")# 设置边框
thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
cell.border = thin_border# 设置背景颜色
cell.fill = PatternFill(start_color="FFCC66", end_color="FFCC66", fill_type="solid")
```#### 合并和拆分单元格```python
# 合并单元格
ws.merge_cells('A1:B2')# 拆分已合并的单元格
ws.unmerge_cells('A1:B2')
```#### 插入图表```python
from openpyxl.chart import BarChart, Reference# 准备数据
data = Reference(ws, min_col=1, min_row=1, max_col=3, max_row=4)# 创建柱状图
chart = BarChart()
chart.add_data(data, titles_from_data=True)# 将图表添加到工作表中
ws.add_chart(chart, "E5")
```### 更多高级功能- **公式**:可以在单元格中设置公式,例如 `ws['A1'] = '=SUM(A2:A4)'`
- **冻结窗格**:使用 `ws.freeze_panes = 'A2'` 来冻结顶部一行或左侧一列。
- **条件格式**:可以为单元格应用条件格式规则。
- **批注**:支持给单元格添加批注。
- **保护工作表**:可以启用工作表保护以防止意外更改。### 示例:完整代码示例以下是一个完整的例子,演示了如何创建包含简单表格的工作簿,并对其进行一些基本操作:```python
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, Border, Side# 创建一个新的工作簿对象
wb = Workbook()# 获取活动的工作表
ws = wb.active
ws.title = "Sales Data"# 添加标题行
headers = ["Product", "Q1 Sales", "Q2 Sales"]
ws.append(headers)# 设置标题行样式
for col in range(1, len(headers) + 1):cell = ws.cell(row=1, column=col)cell.font = Font(bold=True)cell.alignment = Alignment(horizontal="center")# 添加数据行
data = [("Widget A", 120, 150),("Widget B", 90, 110),("Widget C", 75, 85)
]for row in data:ws.append(row)# 保存文件
wb.save("sales_report.xlsx")
```
以上是关于 `openpyxl` 的一些基础知识和常用功能。
相关文章:
[python3]Excel解析库-openpyxl
https://openpyxl.readthedocs.io/en/stable/ openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。它允许开发者创建、修改和保存电子表格,而无需依赖 Microsoft Excel 软件本身。openpyxl 支持读取和写入 Excel 的工作簿(Work…...

Docker 远程访问完整配置教程以及核心参数理解
Docker 远程访问完整配置教程 以下是配置 Docker 支持远程访问的完整教程,包括参数说明、配置修改、云服务器安全组设置、主机防火墙配置,以及验证远程访问的详细步骤。 1. 理解 -H fd:// 参数的作用(理解了以后容易理解后面的操作ÿ…...

王老吉药业SRM系统上线 携手隆道共启战略合作新篇章
12月27日,广州王老吉药业股份有限公司(简称“王老吉药业”)SRM项目上线启动会,在王老吉科普教育基地——“吉园”隆重举行。广药集团纪委主任陈耕、王老吉药业总工程师黄晓丹、隆道公司总裁吴树贵、项目经理赵耀、供应商代表郭伟及…...
MyBatis 配置文件全解析
一、MyBatis 配置文件为何至关重要? 在 Java 后端开发领域,MyBatis 作为一款广受欢迎的持久层框架,极大地简化了数据库操作。而 MyBatis 配置文件,恰似整个框架的 “神经中枢”,掌控着其运行的方方面面,对…...

unity学习6:unity的3D项目的基本界面和菜单
目录 1 unity界面的基本认识 1.1 file 文件 1.2 edit 编辑/操作 1.3 Assets 1.4 gameobject 游戏对象 1.5 组件 1.6 windows 2 这些部分之间的关系 2.1 关联1: Assets & Project 2.2 关联2:gameobject & component 2.3 关联3…...

企业二要素如何用C#实现
一、什么是企业二要素? 企业二要素,通过输入统一社会信用代码、企业名称或统一社会信用代码、法人名称,验证两者是否匹配一致。 二、企业二要素适用哪些场景? 例如:信用与金融领域 1.信用评级:信用评级…...

中科院空天院无人机视觉语言导航新基准!AeroVerse:模拟、预训练、微调和评估空中无人机具身世界模型的测试基准
作者: Fanglong Yao, Yuanchang Yue, Youzhi Liu, Xian Sun, Kun Fu 单位:中国科学院空天信息创新研究院网络信息系统技术重点实验室,中国科学院大学电子电气与通信工程学院 原文链接: AeroVerse: UAV-Agent Benchmark Suite fo…...

Python安装(新手详细版)
前言 第一次接触Python,可能是爬虫或者是信息AI开发的小朋友,都说Python 语言简单,那么多学一些总是有好处的,下面从一个完全不懂的Python 的小白来安装Python 等一系列工作的记录,并且遇到的问题也会写出,…...

Oracle DG备库数据文件损坏修复方法(ORA-01578/ORA-01110)
今天负责报表的同事反馈在DG库查询时出现如下报错 ORA-01578:ORACLE数据块损坏(文件号6,块号 2494856)ORA-01110:数据文件6: /oradata/PMSDG/o1 mf users_molczgmn_.dbfORA-26040:数据块是使用 NOLOGGING 选项加载的 可以看到报错是数据文件损坏,提示了file id和b…...
安装Linux
在Linux系统上安装MySQL数据库,可以根据服务器是否有网络连接选择不同的安装方式。以下分别介绍在线安装(通过yum)和离线安装(手动下载.tar包)的详细步骤: 一、在线安装(通过yum) 检…...

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(四)
****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释! 四、提示范式(Explanation for Prompting Paradigm) 随着语言模型规模的扩大,基于提示(prom…...

【OpenCV】使用Python和OpenCV实现火焰检测
1、 项目源码和结构(转) https://github.com/mushfiq1998/fire-detection-python-opencv 2、 运行环境 # 安装playsound:用于播放报警声音 pip install playsound # 安装opencv-python:cv2用于图像和视频处理,特别是…...

SpringCloud(二)--SpringCloud服务注册与发现
一. 引言 前文简单介绍了SpringCloud的基本简介与特征,接下来介绍每个组成部分的功能以及经常使用的中间件。本文仅为学习所用,联系侵删。 二. SpringCloud概述 2.1 定义 Spring Cloud是一系列框架的有序集合,它巧妙地利用了Spring…...

国内Ubuntu环境Docker部署CosyVoice
国内Ubuntu环境Docker部署CosyVoice 本文旨在记录在 国内 CosyVoice项目在 Ubuntu 环境下如何使用 dockermin-conda进行一键部署。 源项目地址: https://github.com/FunAudioLLM/CosyVoice 如果想要使用 dockerpython 进行部署,可以参考我另一篇博客中的…...

嵌入式linux系统中QT信号与槽实现
第一:Qt中信号与槽简介 信号与槽是Qt编程的基础。因为有了信号与槽的编程机制,在Qt中处理界面各个组件的交互操作时变得更加直观和简单。 槽函数与一般的函数不同的是:槽函数可以与一个信号关联,当信号被发射时,关联的槽函数被自动执行。 案例操作与实现: #ifndef …...

科研绘图系列:R语言单细胞数据常见的可视化图形
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理图1图2图3图4图5图6系统信息参考介绍 单细胞数据常见的可视化图形 因为本教程是单细胞数据,因此运行本画图脚本需要电脑的内存最少32Gb 加载…...
使用 C++ 和函数式编程构建高效的 AI 模型
引言 现代 AI 开发常常使用 Python,但在底层实现中,C 仍是不可或缺的语言,尤其是在性能敏感的场景下。将 C 与函数式编程结合,可以打造高效、模块化的 AI 模型,同时提高代码的可读性和可维护性。本文将深入探讨如何利用…...

guestfish/libguestfs镜像管理工具简介
文章目录 简介guestfishlibguestfs项目 例子原理代码libguestfs架构参考 简介 guestfish Guestfish 是libguestfs项目中的一个工具软件,提供修改虚机镜像内部配置的功能。它不需要把虚机镜像挂接到本地,而是为你提供一个shell接口,你可以查…...
如何在centos中进行有效的网络管理
如何在centos中进行有效的网络管理? 在CentOS中,网络管理是系统管理员日常工作的重要组成部分,本文将详细介绍CentOS中的两种主要网络管理工具:传统的network服务和新一代的NetworkManager,帮助读者更好地配置和管理C…...
Oracle清空表后如何恢复数据
有时候忘记备份数据,把数据清空了,或者删除了,这时候怎么恢复数据呢,使用下面sql即可,替换对应的table和column INSERT INTO table1(column1,column2,column3 ) SELECTcolumn1,column2,column3 FROMtable1 AS OF time…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...