python用openpyxl操作excel-sheet对象操作

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()
相关推荐
如若12330 分钟前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
砚底藏山河2 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
视觉小萌新2 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
薛定谔的猫-菜鸟程序员3 小时前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
Ramble_Naylor4 小时前
Rust深度解读:Send 与 Sync 的本质与线程安全边界
python·算法·rust
Allen_LVyingbo5 小时前
NVIDIA CUDA Tile 在医疗计算中的算子形式化、算法重构与内核实现
大数据·python·算法·重构·知识图谱·健康医疗·数据库架构
云和数据.ChenGuang5 小时前
Python 闭包详解:从原理到实战
linux·开发语言·人工智能·python·kubernetes
我命由我123457 小时前
Python 实用操作 - 文件操作(打开与关闭文件、读取文件、文件写入)
java·开发语言·前端·javascript·数据库·python·java-ee
青少儿编程课堂7 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:倍增法求最近公共祖先LCA解析
c++·python·算法·bfs·信息学竞赛
atwednesday7 小时前
一文理解python中的task,协程,woker
python