当前位置: 首页 > news >正文

使用 Openpyxl 操作 Excel 文件详解

文章目录

  • 安装
    • 安装Python3
    • 安装 openpyxl
  • 基础操作
    • 1. 引入
    • 2. 创建工作簿和工作表
    • 3. 写入数据
    • 4. 保存工作簿
    • 5. 加载已存在的Excel
    • 6. 读取单元格的值
    • 7. 选择工作表
  • 样式和格式化
    • 1. 引入
    • 2. 设置字体
    • 3. 设置边框
    • 4. 填充
    • 5. 设置数字格式
    • 6. 数据验证
    • 7. 公式操作
  • 性能优化
    • 1. read_only/write_only
    • 2. 遍历单元格


openpyxl 是一个用于在 Python 中读取和写入 Excel 文件的优秀库。
它支持 .xlsx 和 .xlsm 格式,非常适合在 Ubuntu 系统上进行 Excel 数据处理和自动化操作。
本篇博客将介绍一些常用的 openpyxl 命令。

安装

安装Python3

首先,你需要安装 openpyxl 和 Python。在 Ubuntu 上,可以通过以下命令安装:

sudo apt install python3

安装 openpyxl

pip3 install openpyxl

基础操作

1. 引入

from openpyxl import Workbook # 新建文件的引入
from openpyxl import load_workbook # 加载已存在文件的引入

2. 创建工作簿和工作表

wb = Workbook() # 创建一个新的工作簿
ws = wb.active # 获取活动工作表wb.create_sheet("Sheet2") # 创建一个新的工作表并命名
ws.title = "NewSheet" # 修改工作表名

3. 写入数据

ws['A1'] = 'Hello, World!'
ws['B1'] = 42
ws['C1'] = 3.14
cell = ws.cell(row=1, column=1, value="New Value")

4. 保存工作簿

wb.save('example.xlsx')

5. 加载已存在的Excel

wb = load_workbook('example.xlsx')
ws = wb.active

6. 读取单元格的值

cell_a1 = ws['A1'].value
cell_b1 = ws['B1'].value
cell_c1 = ws['C1'].valueprint(f"A1: {cell_a1}, B1: {cell_b1}, C1: {cell_c1}")

7. 选择工作表

ws1 = wb.worksheets[0] # 通过索引选择工作表
ws2 = wb["Sheet2"] # 通过名称选择工作表

样式和格式化

1. 引入

from openpyxl.styles import Font, Alignment # 样式操作的引入

2. 设置字体

font = Font(name='Arial', size=14, bold=True, italic=False)
ws['A1'].font = font

3. 设置边框

border = Border(left=Side(border_style='thin'),right=Side(border_style='thin'),top=Side(border_style='thin'),bottom=Side(border_style='thin'))
ws['A1'].border = border

4. 填充

fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
ws['A1'].fill = fill

5. 设置数字格式


ws['B1'].number_format = '0.00%'   # 百分比格式
ws['C1'].number_format = 'YYYY-MM-DD'  # 日期格式

6. 数据验证

from openpyxl.worksheet.datavalidation import DataValidationdv = DataValidation(type="list", formula1='"Apple,Banana,Cherry"', allow_blank=True) # 创建数据验证对象ws.add_data_validation(dv) 
dv.add('A1') # 将数据验证应用到单元格

7. 公式操作

可以在单元格中插入公式:

ws['D1'] = "=SUM(A1:A3)"

性能优化

1. read_only/write_only

对于大的 Excel 文件,可以使用read_only来提高读取效率, 使用 write_only 来优化写入性能

from openpyxl import load_workbookwb = load_workbook('example.xlsx', read_only=True) # 使用只读模式加载工作簿

from openpyxl import Workbookwb = Workbook(write_only=True) # 使用写入模式创建工作簿
ws = wb.create_sheet()

2. 遍历单元格

可以使用 .rows 和 .columns 遍历工作表中的行和列:

for row in ws.iter_rows(min_row=1, max_row=5, min_col=1, max_col=3):for cell in row:print(cell.value, end=" ")

相关文章:

使用 Openpyxl 操作 Excel 文件详解

文章目录 安装安装Python3安装 openpyxl 基础操作1. 引入2. 创建工作簿和工作表3. 写入数据4. 保存工作簿5. 加载已存在的Excel6. 读取单元格的值7. 选择工作表 样式和格式化1. 引入2. 设置字体3. 设置边框4. 填充5. 设置数字格式6. 数据验证7. 公式操作 性能优化1. read_only/…...

统信服务器操作系统V20 1070A 安装docker新版本26.1.4

应用场景: 硬件/整机信息:x86平台、深信服超融合平台 OS版本信息:统信V20 1070a 1.获取docker二进制包 链接: https://pan.baidu.com/s/1SukBlra0mQxvslTfFakzGw?pwd5s5y 提取码: 5s5y tar xvf docker-26.1.4.tgz groupadd docker ch…...

【数据分享】1929-2024年全球站点的逐年降雪深度数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站…...

python爬虫系列课程1:初识爬虫

python爬虫系列课程1:初识爬虫 一、爬虫的概念二、通用爬虫和自定义爬虫的区别三、开发语言四、爬虫流程一、爬虫的概念 网络爬虫(又被称为网页蜘蛛、网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动抓取互联网信息的程序。原则上,只要是…...

大模型工具大比拼:SGLang、Ollama、VLLM、LLaMA.cpp 如何选择?

简介:在人工智能飞速发展的今天,大模型已经成为推动技术革新的核心力量。无论是智能客服、内容创作,还是科研辅助、代码生成,大模型的身影无处不在。然而,面对市场上琳琅满目的工具,如何挑选最适合自己的那…...

什么是语料清洗、预训练、指令微调、强化学习、内容安全; 什么是megatron,deepspeed,vllm推理加速框架

什么是语料清洗、预训练、指令微调、强化学习、内容安全 目录 什么是语料清洗、预训练、指令微调、强化学习、内容安全语料清洗预训练指令微调强化学习内容安全什么是megatron,deepspeed,vllm推理加速框架语料清洗 语料清洗是对原始文本数据进行处理的过程,旨在去除数据中的…...

HTTP的“对话”逻辑:请求与响应如何构建数据桥梁?

一、前言 作为现代互联网通信的基石,HTTP协议定义了客户端与服务器之间的“对话规则”。每一次网页加载、API调用或文件传输的背后,都离不开精心构造的HTTP请求与响应。请求中封装了用户的意图——从请求方法、资源路径到提交的数据;响应则承…...

【深度学习】预训练和微调概述

预训练和微调概述 1. 预训练和微调的介绍1.1 预训练(Pretraining)1.2 微调(Fine-Tuning) 2. 预训练和微调的区别 预训练和微调是现代深度学习模型训练中的两个关键步骤,它们通常是一个 预训练-微调 (Pretrain-Finetune…...

自动化测试框架搭建-单次接口执行-三部曲

目的 判断接口返回值和提前设置的预期是否一致,从而判断本次测试是否通过 代码步骤设计 第一步:前端调用后端已经写好的POST接口,并传递参数 第二步:后端接收到参数,组装并请求指定接口,保存返回 第三…...

【阮一峰】2.数组

数组 简介 所有成员的类型必须相同,但是成员数量是不确定的。 由于成员数量可以动态变化,所以 TypeScript 不会对数组边界进行检查,越界访问数组并不会报错。 第一种写法: let arr: (number | string)[];第二种写法&#xff…...

DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方DeepSeek接入)

前言 在当今数字化时代,AI编程助手已成为提升开发效率的利器。DeepSeek作为一款强大的AI模型,凭借其出色的性能和开源免费的优势,成为许多开发者的首选。今天,就让我们一起探索如何将DeepSeek接入PyCharm,实现高效、智…...

【Java Card】Applet 使用Shareable进行数据分享以及部分问题处理

文章目录 前言一、定义接口二、server端实现三、client端实现四、遇到的问题 前言 在进行开发时,可能会将业务放到不同的applet中,这时常常会需要进行数据的分享。 比如在一个applet中存储了密钥,而在另一个业务applet中需要进行签名时&…...

国产FPGA开发板选择

FPGA开发板是学习和开发FPGA的重要工具,选择合适的开发板对学习效果和开发效率至关重要。随着国产FPGA的发展,淘宝上的许多FPGA开发板店铺也开始进行国产FPGA的设计和销售,本文将对国产FPGA和相关店铺做个简单梳理,帮助有需要使用…...

com.typesafe.config

com.typesafe.config 是 Typesafe Config 库的核心包,主要用于 统一、灵活地管理应用程序配置,支持从多种格式(如 HOCON、JSON、Java Properties)加载配置,并提供类型安全的访问接口。以下是其核心功能的详细解析&…...

Ubuntu学习备忘

1. 打开Terminal快捷键 ctrl alt t 2.Ubuntu22.04的root没有默认初始密码, 为root设置密码,下面链接的step1, How to allow GUI root login on Ubuntu 22.04 Jammy Jellyfish Linux - LinuxConfig...

【C++】— 掌握STL vector 类:“Vector简介:动态数组的高效应用”

文章目录 1.vector的介绍和使用1.1vector的介绍1.2 vector的特点1.3vector的使用1.3.1vector的定义1.3.2vector iterator的使用1.3.3vector 的空间增长问题1.3.4 vector 的增删查改1.3.5vector 迭代器失效问题 1.vector的介绍和使用 1.1vector的介绍 vector是一个顺序容器&am…...

Docker__持续更新......

Docker 1. 基本知识1.1 为什么有Docker?1.2 Docker架构与容器化 画图解释 画图解释2. 项目实战 1. 基本知识 1.1 为什么有Docker? 用一行命令跨平台安装项目,在不同平台上运行项目。把项目打包分享运行应用。 1.2 Docker架构与容器化 准备机器,在机…...

【R语言】主成分分析与因子分析

一、主成分分析 主成分分析(Principal Component Analysis, PCA)是一种常用的无监督数据降维技术,广泛应用于统计学、数据科学和机器学习等领域。它通过正交化线性变换将(高维)原始数据投影到一个新的坐标系&#xff…...

ROS-相机话题-获取图像-颜色目标识别与定位-目标跟随-人脸检测

文章目录 相机话题获取图像颜色目标识别与定位目标跟随人脸检测 相机话题 启动仿真 roslaunch wpr_simulation wpb_stage_robocup.launch rostopic hz /kinect2/qhd/image_color_rect/camera/image_raw:原始的、未经处理的图像数据。 /camera/image_rect&#xff…...

STM32 如何使用DMA和获取ADC

目录 背景 ‌摇杆的原理 程序 端口配置 ADC 配置 DMA配置 背景 DMA是一种计算机技术,允许某些硬件子系统直接访问系统内存,而不需要中央处理器(CPU)的介入,从而减轻CPU的负担。我们可以通过DMA来从外设&#xf…...

如何实现kkFileView与人大金仓KingbaseES的国产化数据库备份方案

如何实现kkFileView与人大金仓KingbaseES的国产化数据库备份方案 【免费下载链接】kkFileView Universal File Online Preview Project based on Spring-Boot 项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView 在当今数字化转型浪潮中,国产化软…...

从RFLP到SNP:一个玉米育种博士的QTL定位实战笔记(附避坑指南)

从RFLP到SNP:一个玉米育种博士的QTL定位实战笔记(附避坑指南) 第一次在玉米试验田里看到自己设计的分子标记终于与抗旱性状显著关联时,那种兴奋感至今难忘。但随后三个月的重复验证中,这个"显著位点"却像捉迷…...

Cloudflare 为何抛弃 NGINX,用 Rust 自研了一个代理

每天有超过一万亿次 HTTP 请求,在 Cloudflare 的全球网络和各地源站服务器之间流动。 这中间有一层代理,负责接收每一个缓存未命中的请求,转发给对应的源站,再把响应送回来。CDN、Workers、Tunnel、Stream、R2——Cloudflare 的大…...

多级注意力Transformer反应再生系统故障诊断【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,查看文章底部二维码(1)自适应正交变分模态分解与贝叶斯优化的特征提取&am…...

SAM数据引擎:AI与人类协同的实例分割标注革命

1. SAM数据引擎:AI与人类协同的标注革命在计算机视觉领域,实例分割一直被视为最具挑战性的任务之一。与简单的物体检测不同,实例分割需要精确到像素级别地识别和标注图像中的每一个对象。传统纯人工标注方式在面对数百万张图像时,…...

使用 curl 命令直接测试 Taotoken 的 OpenAI 兼容接口是否通畅

使用 curl 命令直接测试 Taotoken 的 OpenAI 兼容接口是否通畅 1. 准备工作 在开始测试之前,需要确保已经完成以下准备工作。首先登录 Taotoken 控制台,在「API 密钥」页面创建一个新的 API Key。建议为测试用途单独创建 Key,避免使用生产环…...

如何免费解锁QQ音乐加密音频:QMCDecode终极指南

如何免费解锁QQ音乐加密音频:QMCDecode终极指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录,默认转换结果…...

从水土流失到城市经济:手把手教你用SPSS搞定地理学中的回归与聚类分析(附实战数据集)

从水土流失到城市经济:用SPSS解锁地理数据的多维密码 当一片土地的水土流失面积不断扩大,土壤氮含量持续下降,这背后隐藏着怎样的自然规律?当不同城市的经济指标呈现巨大差异,又该如何科学分类并找出驱动因素&#xff…...

CentOS 7.9服务器性能摸底:手把手教你用Linpack测出真实算力(附HPL.dat调优指南)

CentOS 7.9服务器性能摸底:手把手教你用Linpack测出真实算力(附HPL.dat调优指南) 在数据中心和云计算环境中,服务器的实际计算能力往往比规格参数更能反映真实性能。尤其对于科学计算、金融建模或AI训练等高负载场景,浮…...

别再硬编码了!用Simulink.Parameter对象管理模型参数的保姆级教程

别再硬编码了!用Simulink.Parameter对象管理模型参数的保姆级教程 第一次接触Simulink建模时,我像大多数新手一样,直接在模块参数框里填写数值。直到某次修改一个电机控制模型,需要在20多个地方调整同一个参数值,才意识…...