在ubuntu上用Python的openpyxl模块操作Excel的案例

文章目录

  • 安装模块
  • 读取Excel
  • 数据库取数
  • 匹配数据和更新Excel数据


在Ubuntu系统的环境下基本职能借助Python的openpyxl模块实现对Excel数据的操作。


安装模块

本次需要用到的模块需要提前安装(如果没有的话)

pip3 install openpyxl
pip3 install pymysql

在操作前,需要准备好用于操作的Excel文件,假设其文件名为 example.xlsx
此外,还需准备好相应的数据库,本文以MySQL 5.7数据库为例,确保数据库中包含相应的数据表及数据。


读取Excel

使用openpyxl模块读取Excel文件中的数据,可参考以下代码示例:

from openpyxl import load_workbook

# 加载Excel文件
workbook = load_workbook('example.xlsx')

# 选择活动工作表
sheet = workbook.active

# 读取数据并存储
rows = sheet.max_row
cols = sheet.max_column
data_list = []
for row in range(1, rows + 1):
    row_data = []
    for col in range(1, cols + 1):
        cell_value = sheet.cell(row=row, column=col).value
        row_data.append(cell_value)
    data_list.append(row_data)

# 显示读取的数据
for row in data_list:
    print(row)

上述代码将Excel文件中的数据读取并存储到 data_list 列表中,以便后续与数据库数据进行匹配。


数据库取数

以下是连接数据库并进行简单查询的代码示例:

import pymysql

# 连接数据库
connection = pymysql.connect(
    host='localhost',
    user='root',
    password='your_password',
    database='your_database',
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

try:
    with connection.cursor() as cursor:
        # 查询数据
        search_value = data_list[0][0]  # 以data_list第一个元素的第一列的值作为搜索条件
        sql = "SELECT * FROM your_table WHERE some_column = %s"
        cursor.execute(sql, (search_value,))
        result = cursor.fetchall()

        # 显示匹配结果
        for row in result:
            print(row)
finally:
    connection.close()

在使用过程中,需要根据实际情况修改连接参数及查询语句中的相关字段。


匹配数据和更新Excel数据

假设匹配到的数据存储在 result 列表中,现在需要将匹配结果更新回Excel数据中,具体操作如下:

from openpyxl import Workbook

# 创建新的工作簿
workbook = load_workbook('example.xlsx')
sheet = workbook.active

# 写入表头信息
sheet['A'] = '原数据'
sheet['B'] = '匹配结果'

# 将原数据和新列写入Excel
for i, row in enumerate(data_list, start=1):
    sheet.cell(row=i, column=1).value = row
    matched = False
    for res in result:
        if row[0] == res['col']:  # 假设匹配字段在第一列且数据库查询结果字段名为'col'
            sheet.cell(row=i, column=2).value = '匹配成功'
            matched = True
            break
    if not matched:
        sheet.cell(row=i, column=2).value = '无匹配数据'

# 保存更新后的新工作簿
workbook.save('matched_data.xlsx')

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SOME/IP--协议英文原文讲解8

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 4.2 Speci…

基于YOLO11深度学习的果园苹果检测与计数系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

【C++】 Flow of Control

《C程序设计基础教程》——刘厚泉,李政伟,二零一三年九月版,学习笔记 文章目录 1、选择结构1.1、if 语句1.2、嵌套的 if 语句1.3、条件运算符 ?:1.4、switch 语句 2、循环结构2.1、while 语句2.2、do-while 语句2.3、 for 循环2.4、循环嵌套…

mysql 学习15 SQL优化,插入数据优化,主键优化,order by优化,group by 优化,limit 优化,count 优化,update 优化

插入数据优化, insert 优化, 批量插入(一次不超过1000条) 手动提交事务 主键顺序插入 load 从本地一次插入大批量数据, 登陆时 mysql --local-infile -u root -p load data local infile /root/sql1.log into table tb…

玩转大语言模型——使用LM Studio在本地部署deepseek R1的零基础)教程

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——三分钟教你用langchain提示词工程获得猫娘女友 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型—…

【复现DeepSeek-R1之Open R1实战】系列7:GRPO原理介绍、训练流程和源码深度解析

目录 4.6 GRPO训练过程4.6.1 GRPO原理4.6.2 设置参考模型4.6.3 从训练集中抽取问题4.6.4 旧策略模型生成G个输出4.6.5 对每个输出用奖励模型 RM 打分4.6.6 根据目标函数做梯度更新 【复现DeepSeek-R1之Open R1实战】系列博文链接: 【复现DeepSeek-R1之Open R1实战】…

STM32物联网终端实战:从传感器到云端的低功耗设计

STM32物联网终端实战:从传感器到云端的低功耗设计 一、项目背景与挑战分析 1.1 物联网终端典型需求 (示意图说明:传感器数据采集 → 本地处理 → 无线传输 → 云端存储) 在工业物联网场景中,终端设备需满足以下核心需…

R 语言科研绘图第 26 期 --- 密度图-基础

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…

Starlink卫星动力学系统仿真建模番外篇6-地球敏感器

地球敏感器:介绍、使用方法及相关算法 地球敏感器是航天器姿态控制系统中的重要传感器,用于确定地球相对于航天器的位置和方向。它在卫星、空间站和深空探测器等任务中广泛应用,主要用于姿态控制、轨道调整和导航。本文将介绍地球敏感器的基…

【含文档+PPT+源码】基于微信小程序的猎兔汽车保养维修美容服务平台的设计与实现

项目介绍 本课程演示的是一款基于微信小程序的猎兔汽车保养维修美容服务平台的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部…

斐波那契数列模型:在动态规划的丝绸之路上追寻斐波那契的足迹(上)

文章目录 引言递归与动态规划的对比递归解法的初探动态规划的优雅与高效自顶向下的记忆化搜索自底向上的迭代法 性能分析与比较小结 引言 斐波那契数列,这一数列如同一条无形的丝线,穿越千年时光,悄然延续其魅力。其定义简单而优美&#xff…

基于微信小程序的宿舍报修管理系统设计与实现,SpringBoot(15500字)+Vue+毕业论文+指导搭建视频

运行环境 jdkmysqlIntelliJ IDEAmaven3微信开发者工具 项目技术SpringBoothtmlcssjsjqueryvue2uni-app 宿舍报修小程序是一个集中管理宿舍维修请求的在线平台,为学生、维修人员和管理员提供了一个便捷、高效的交互界面。以下是关于这些功能的简单介绍: …

Linux环境开发工具

Linux软件包管理器yum Linux下安装软件方式: 源代码安装rpm安装——Linux安装包yum安装——解决安装源、安装版本、安装依赖的问题 yum对应于Windows系统下的应用商店 使用Linux系统的人:大部分是职业程序员 客户端怎么知道去哪里下载软件&#xff1…

遥感影像目标检测:从CNN(Faster-RCNN)到Transformer(DETR)

我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB,遥感大数据时…

大数据开发治理平台~DataWorks(核心功能汇总)

目录 数据集成 功能概述 使用限制 功能相关补充说明 数据开发 功能概述 数据建模 功能概述 核心技术与架构 数据分析 功能概述 数据治理 数据地图 功能概述 数据质量 功能概述 数据治理资产 功能概述 使用限制 数据服务 功能概述 数据集成 DataWorks的数据…

Mongodb数据管理

Mongodb数据管理 1.登录数据库,查看默认的库 [rootdb51~]# mongo> show databases; admin 0.000GB config 0.000GB local 0.000GB> use admin switched to db admin > show tables system.version > admin库:admin 是 MongoDB 的管理…

洛谷P8707 [蓝桥杯 2020 省 AB1] 走方格

#include <iostream> using namespace std; int f[31][31]; int main(){int n,m;scanf("%d%d",&n,&m);f[1][1]1;//边界&#xff1a;f(1,1)1for(int i1;i<n;i)for(int j1;j<m;j)if((i&1||j&1)&&(i!1||j!1))//i,j不均为偶数&#…

腿足机器人之七- 逆运动学

腿足机器人之七- 逆运动学 基本概念腿部运动的数学表示坐标系定义以及自由度说明正运动学模型 逆运动学求解几何解法数值迭代法雅可比矩阵法基础双足机器人步态规划中的雅可比法应用 工程挑战与解决方案实际应用中的工具和算法多解问题高自由度机器人&#xff08;如Atlas的28自…

【强化学习的数学原理】第10课-Actor-Critic方法-笔记

学习资料&#xff1a;bilibili 西湖大学赵世钰老师的【强化学习的数学原理】课程。链接&#xff1a;强化学习的数学原理 西湖大学 赵世钰 文章目录 一、最简单的Actor-Critic&#xff08;QAC&#xff09;二、Advantage Actor-Critic&#xff08;A2C&#xff09;三、重要性采样和…

vtkCamera类的Dolly函数作用及相机拉近拉远

录 1. 预备知识 1.1.相机焦点 2. vtkCamera类的Dolly函数作用 3. 附加说明 1. 预备知识 要理解vtkCamera类的Dolly函数作用,就必须先了解vtkCamera类表示的相机的各种属性。  VTK是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面,如…