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

python:使用openpyxl库,实现excel表格的创建、查询(读取)、修改、插入数据

在Python中,可以使用多种库来操作Excel文件,最常用的是openpyxl(处理.xlsx格式)和xlrd/xlwt(处理.xls格式)。下面介绍如何使用Python创建、读取和修改Excel文件,并结合你的需求示例。

1. 安装必要的库

pip install openpyxl  # 处理.xlsx格式

2. 创建或写入Excel文件

以下代码演示如何创建一个Excel文件并写入数据:

from openpyxl import Workbook
from openpyxl import load_workbook# 创建新的Excel文件
def create_excel(file_path):# 创建工作簿wb = Workbook()# 获取默认工作表ws = wb.activews.title = "Sheet1"# 添加表头ws['A1'] = 'ID'ws['B1'] = '姓名'ws['C1'] = '部门'# 保存文件wb.save(file_path)print(f"已创建文件: {file_path}")# 向现有Excel文件追加数据
def append_to_excel(file_path, data):try:# 打开现有工作簿wb = load_workbook(file_path)ws = wb.active# 获取当前最后一行的行号last_row = ws.max_row# 从第二行开始添加数据(第一行是表头)for row in data:ws.append(row)# 保存修改wb.save(file_path)print(f"已成功追加数据到 {file_path}")except FileNotFoundError:print(f"文件不存在: {file_path}")except Exception as e:print(f"发生错误: {e}")# 示例:创建文件并追加数据
if __name__ == "__main__":file_path = "D:/a.xlsx"# 创建文件(如果不存在)if not os.path.exists(file_path):create_excel(file_path)# 准备要追加的数据(每行是一个列表)new_data = [[1, "张三", "技术部"],[2, "李四", "市场部"]]# 追加数据到Excelappend_to_excel(file_path, new_data)

3. 读取Excel文件

以下代码演示如何读取Excel文件中的数据:

from openpyxl import load_workbookdef read_excel(file_path):try:# 打开工作簿wb = load_workbook(file_path)ws = wb.active# 获取最大行数和列数max_row = ws.max_rowmax_col = ws.max_column# 读取数据data = []for row in range(1, max_row + 1):row_data = []for col in range(1, max_col + 1):cell_value = ws.cell(row=row, column=col).valuerow_data.append(cell_value)data.append(row_data)# 打印数据for row in data:print(row)return dataexcept FileNotFoundError:print(f"文件不存在: {file_path}")except Exception as e:print(f"发生错误: {e}")# 示例:读取Excel文件
if __name__ == "__main__":file_path = "D:/a.xlsx"read_excel(file_path)

4. 修改现有Excel文件中的数据

以下代码演示如何修改Excel文件中的特定单元格:

from openpyxl import load_workbookdef update_excel(file_path, row, col, new_value):try:# 打开工作簿wb = load_workbook(file_path)ws = wb.active# 更新指定单元格ws.cell(row=row, column=col).value = new_value# 保存修改wb.save(file_path)print(f"已更新第 {row} 行第 {col} 列的数据为: {new_value}")except FileNotFoundError:print(f"文件不存在: {file_path}")except Exception as e:print(f"发生错误: {e}")# 示例:修改Excel文件中的数据(将第2行第3列的部门改为"研发部")
if __name__ == "__main__":file_path = "D:/a.xlsx"update_excel(file_path, 2, 3, "研发部")

5. 针对你的需求:写入aaa字段

如果要将用户输入的aaa字段写入Excel文件的特定列(假设为B列),可以这样实现:

from openpyxl import load_workbookdef write_aaa_to_excel(file_path, aaa_value):try:# 打开工作簿wb = load_workbook(file_path)ws = wb.active# 获取当前最后一行的下一行new_row = ws.max_row + 1# 在B列(第2列)写入aaa字段ws.cell(row=new_row, column=2).value = aaa_value# 保存修改wb.save(file_path)print(f"已成功写入aaa字段: {aaa_value}")except FileNotFoundError:print(f"文件不存在: {file_path}")except Exception as e:print(f"发生错误: {e}")# 示例:写入aaa字段
if __name__ == "__main__":file_path = "D:/a.xlsx"aaa_value = input("请输入aaa字段内容: ")write_aaa_to_excel(file_path, aaa_value)

注意事项

  1. 文件路径权限:确保Python程序有访问D:/a.xlsx的权限(特别是Windows系统,可能需要管理员权限)。
  2. 文件存在性:操作前最好检查文件是否存在,避免错误。
  3. 数据类型:Excel中的数据类型可能需要特别处理(如日期、数字格式等)。
  4. 并发操作:如果多个进程同时操作同一个Excel文件,可能会导致冲突,需考虑加锁机制。

通过以上代码,你可以灵活地操作Excel文件,实现数据的增删改查。

http://www.dtcms.com/a/277147.html

相关文章:

  • LVS负载均衡集群概述
  • 论文笔记:AnImitation Learning Approach for Cache Replacement
  • iOS高级开发工程师面试——架构设计
  • MailSpring
  • [Subtitle Edit] 语言文件管理.xml | 测试框架(VSTest) | 构建流程(MSBuild) | AppVeyor(CI/CD)
  • 006_测试评估与安全实践
  • 设计模式之工厂模式:对象创建的智慧之道
  • 设计模式-门面模式
  • CAU数据挖掘第四章 分类问题
  • 【论文阅读47】-微震事件的时间、空间和强度(能量)预测
  • Java设计模式之行为型模式(命令模式)
  • 单例模式:确保全局唯一实例
  • 第三章-提示词-探秘大语言基础模型:认知、分类与前沿洞察(9/36)
  • 数据结构 Map和Set
  • 代理模式:控制对象访问
  • 小车避障功能的实现(第七天)
  • 使用微信免费的图像处理接口,来开发图片智能裁剪和二维码/条码识别功能,爽歪歪
  • Typecho分类导航栏开发指南:从基础到高级实现
  • 【零基础入门unity游戏开发——unity3D篇】光照探针 (Light Probes)实现动态物体的间接光照
  • python爬取新浪财经网站上行业板块股票信息的代码
  • Java 大视界 -- Java 大数据在智能教育学习资源智能分类与标签优化中的应用(346)
  • Pytorch实现感知器并实现分类动画
  • Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)
  • MacOS使用Multipass快速搭建轻量级k3s集群
  • 在Intel Mac的PyCharm中设置‘add bin folder to the path‘的解决方案
  • COZE token刷新
  • mac上BRPC的CMakeLists.txt优化:解决Protobuf路径问题
  • composer如何安装以及举例在PHP项目中使用Composer安装TCPDF库-优雅草卓伊凡
  • 数据结构1:线性表的顺序存储的定义以及基本操作
  • [Linux 入门] Linux 引导过程、系统管理与故障处理全解析