当前位置: 首页 > 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.lryc.cn/news/587402.html

相关文章:

  • 在新版本的微信开发者工具中使用npm包
  • 开源工具DeepFilterNet:实时语音降噪
  • AI驱动的软件工程(上):人机协同的设计与建模
  • Vue 3 TypeScript 接口(Interface)使用
  • (一)SAP Group Reporting (GR) 集团财务合并解决方案套件概述
  • 数智管理学(三十三)
  • [论文阅读] 软件工程 | 首个德语软件工程情感分析黄金标准数据集:构建与价值解析
  • 【读书笔记】《Effective Modern C++》第二章:auto
  • 【论文阅读】Think Only When You Need with Large Hybrid-Reasoning Models
  • Datawhale AI 夏令营2025科大讯飞AI大赛<夏令营:用AI做带货视频评论分析>
  • 业务访问控制-ACL与包过滤
  • 【OpenGL ES】手撕一个mini版的Android native渲染框架
  • 串口学习和蓝牙通信HC05(第八天)
  • AI交互中的礼貌用语:“谢谢“的效用与代价分析
  • 09.获取 Python 列表的首尾元素与切片技巧
  • LLM大模型微调技术全景:从IFT、SFT到RLHF、DPO与PPO强化学习
  • 华擎B150M Pro4S魔改bios上8代U
  • AutoLabor-ROS-Python 学习记录——第一章 ROS概述与环境搭建
  • vue3 el-select默认选中
  • (33)记录描述窗体组件属性的枚举量 enum Qt :: WidgetAttribute, 简记为 WA_
  • 大模型微调(一):基于Swift框架进行自我认知微调(使用Lora微调Qwen3-8B模型)
  • MCU中的系统控制器(System Controller)是什么?
  • pthread_mutex_unlock函数的概念和用法
  • 手写muduo笔记
  • Clojure和Golang中的Channel有什么异同(TBC)
  • NumPy 中 np.c_ 的用法解析
  • Can I Trust Your Answer? Visually Grounded Video Question Answering
  • Python协程进阶:优雅终止与异常处理详解
  • Java 面向对象的特征(一)
  • Actor-Critic重要性采样原理