python用openpyxl操作excel-sheet对象操作
python
import logging
import com.pro001.log.pro_log_config as pro_log_config
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, Alignment, Side, PatternFill, Border
import os
import datetime
import random
import pandas as pd
def excel_sheet_operate(file_path):
""" excel文件的sheet操作 """
try:
if not os.path.exists(file_path):
logger.error(f'文件{file_path}不存在!')
return None
wb = load_workbook(file_path)
# 获取当前活动的sheet
ws = wb.active
# 向当前活动的sheet追加数据,注意:如果Excel文件为打开状态则报权限问题错误
data_list = [
['姓名', '年龄', '部门'],
[f'姓名{random.randint(1, 100)}',
random.randint(18, 70),
f'部门{random.randint(1, 10)}']
]
row1_cel01 = ws['A1'].value # 获取导入excel单元格A1的值
for data in data_list:
if '姓名' == row1_cel01 and '姓名' == data[0]:
# 原来的excel已有表头,则不要添加数据列的第一列
continue
ws.append(data)
logger.info(f'数据{data} 追加数据成功!')
# 复制当前活动的sheet到同一个Excel文件的另一个目标工作表
target_sheet = wb.copy_worksheet(ws)
# 设置目标工作表新的名称
target_sheet.title = 'TBCopy01'
#获取第一个sheet对象
ws_active = wb.worksheets[0]
# 指定wb对象的活动sheet为第一个sheet
wb.active = ws_active
# 保存wb对象
wb.save(file_path)
logger.info(f'文件{file_path}工作表{ws.title}成功复制到{target_sheet.title}工作表!')
except Exception as e:
logger.error(f'文件{file_path},操作失败,info:\n{e}')
def main():
"""主函数"""
excel_sheet_operate(r'F:\appData\20251207_211304.xlsx')
if __name__ == '__main__':
print('-' * 60)
main()
