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)
注意事项
- 文件路径权限:确保Python程序有访问
D:/a.xlsx
的权限(特别是Windows系统,可能需要管理员权限)。 - 文件存在性:操作前最好检查文件是否存在,避免错误。
- 数据类型:Excel中的数据类型可能需要特别处理(如日期、数字格式等)。
- 并发操作:如果多个进程同时操作同一个Excel文件,可能会导致冲突,需考虑加锁机制。
通过以上代码,你可以灵活地操作Excel文件,实现数据的增删改查。