[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` 的一些基础知识和常用功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/502775.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[论文笔记]Representation Learning with Contrastive Predictive Coding

引言 今天带来论文 Representation Learning with Contrastive Predictive Coding的笔记。 提出了一种通用的无监督学习方法从高维数据中提取有用表示,称为对比预测编码(Contrastive Predictive Coding,CPC)。使用了一种概率对比损失, 通过使用负采样使…

Kafka 消费者专题

目录 消费者消费者组消费方式消费规则独立消费主题代码示例(极简)代码示例(独立消费分区) offset自动提交代码示例(自动提交)手动提交代码示例(同步)代码示例(异步&#…

【踩坑指南2.0 2025最新】Scala中如何在命令行传入参数以运行主函数

这个地方基本没有任何文档记录,在学习的过程中屡屡碰壁,因此记录一下这部分的内容,懒得看可以直接跳到总结看结论。 踩坑步骤 首先来看看书上让我们怎么写: //main.scala object Start {def main(args:Array[String]) {try {v…

数据分析思维(七):分析方法——群组分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》,本文内容就是提取…

CSS 之 position 定位属性详解

CSS系列文章目录 CSS 之 display 布局属性详解 CSS 之 position 定位属性详解一文搞懂flex布局 【弹性盒布局】 文章目录 CSS系列文章目录一、前言二、静态定位:position:static;二、相对定位:position:relative三、绝对定位:pos…

麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本

12月26日,2024云计算产业和标准应用大会在北京成功召开。大会汇集政产学研用各方专家学者,共同探讨云计算产业发展方向和未来机遇,展示云计算标准化工作重要成果。 会上,云建设与应用领航计划(2024)建云用…

微信小程序Uniapp

使用命令行创建项目(vuets) npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project然后用HBX打开项目 再安装依赖 npm i 再运行开发版本,生成dist目录 pnpm dev:mp-weixin 注意要设置APPid 再用微信小程序打开

汇编环境搭建

学习视频 将MASM所在目录 指定为C盘

计算机网络--路由表的更新

一、方法 【计算机网络习题-RIP路由表更新-哔哩哔哩】 二、举个例子 例1 例2

热备份路由HSRP及配置案例

✍作者:柒烨带你飞 💪格言:生活的情况越艰难,我越感到自己更坚强;我这个人走得很慢,但我从不后退。 📜系列专栏:网路安全入门系列 目录 一,HSRP的相关概念二,…

今日头条ip属地根据什么显示?不准确怎么办

在今日头条这样的社交媒体平台上,用户的IP属地信息对于维护网络环境的健康与秩序至关重要。然而,不少用户发现自己的IP属地显示与实际位置不符,这引发了广泛的关注和讨论。本文将深入探讨今日头条IP属地的显示依据,并提供解决IP属…

倍思氮化镓充电器分享:Super GaN伸缩线快充35W

快节奏的时代,在旅游、办公等场景下,一款高效、便捷的充电器可以让我们的生活更便捷、高效。今天就给大家推荐一款倍思氮化镓充电器——Super GaN伸缩线快充35W。它具备多重亮点,可以满足我们在许多场景下的充电需求,成为我们的得力助手。 倍思氮化镓Super GaN伸缩线快充35W的亮…

云架构Web端的工业MES系统设计之区分工业过程

云架构Web端的工业MES系统设计之区分工业过程 在当今数字化浪潮席卷全球的背景下,制造业作为国家经济发展的重要支柱产业,正面临着前所未有的机遇与挑战。市场需求的快速变化、客户个性化定制要求的日益提高以及全球竞争的愈发激烈,都促使制造企业必须寻求更加高效、智能的生产…

嵌入式linux中socket控制与实现

一、概述 1、首先网络,一看到这个词,我们就会想到IP地址和端口号,那IP地址和端口各有什么作用呢? (1)IP地址如身份证一样,是标识的电脑的,一台电脑只有一个IP地址。 (2)端口提供了一种访问通道,服务器一般都是通过知名端口号来识别某个服务。例如,对于每个TCP/IP实…

VScode SSH 错误:Got bad result from install script 解決

之前vscode好好的,某天突然连接报错如下 尝试1. 服务器没有断开,ssh可以正常连接 2. 用管理员权限运行vscode,无效 3. 删除服务器上的~/.vscode-server 文件夹,无效 试过很多后,原来很可能是前一天anaconda卸载导致注册表项 步…

GPT分区 使用parted标准分区划分,以及相邻分区扩容

parted 是一个功能强大的命令行工具,用于创建和管理磁盘分区表和分区。它支持多种分区表类型,如 MBR(msdos)、GPT(GUID Partition Table)等,并且可以处理大容量磁盘。parted 提供了一个交互式界…

关系分类(RC)模型和关系抽取(RE)模型的区别

目标不同 关系分类模型:对给定的实体对在给定句子中预测其关系类型。两阶段(RC) 关系抽取模型:从句子中识别出所有潜在实体对,并为其预测关系类型。一阶段(NERRE) 训练/预测阶段输入输出数据不…

VSCode编辑+GCC for ARM交叉编译工具链+CMake构建+OpenOCD调试(基于STM32的标准库/HAL库)

一、CMake安装 进入CMake官网的下载地址Get the Software,根据系统安装对应的Binary distributions。 或者在CMake——国内镜像获取二进制镜像安装包。 或者访问GitHub的xPack项目xPack CMake v3.28.6-1,下载即可。 记得添加用户/系统的环境变量&#…

【数据结构】链表(2):双向链表和双向循环链表

双向链表(Doubly Linked List) 定义: 每个节点包含三个部分: 数据域。前驱指针域(指向前一个节点)。后继指针域(指向下一个节点)。 支持从任意节点向前或向后遍历。 #define dat…

RK3588+麒麟国产系统+FPGA+AI在电力和轨道交通视觉与采集系统的应用

工业视觉识别系统厂家提供的功能主要包括: 这些厂家通过先进的视觉识别技术,实现图像的采集、处理与分析。系统能够自动化地完成质量检测、物料分拣、设备监控等任务,显著提升生产效率和产品质量。同时,系统具备高度的灵活性和可扩…