• Python无废话-办公自动化Excel写入操作


    Python 办公自动化-Excel写入

    创建并保存Excel文件

    import openpyxl

    workbook=openpyxl.Workbook() #创建空Excel文件

    sheet=workbook.active #获取活动的工作表

    sheet.title=“测试“ #修改sheet工作表名称为测试

    workbook.save(“data\input\Test.xlsx”) #保存Excel文件

    创建&删除工作表

    #创建工作sheet,默认sheet1,sheet2…依次递增

    workbook.create_sheet()

    #通过关键字参数,指定工作表索引,创建工作表

    workbook.create_sheet(index=0,title="测试1")

    #删除指定的工作表

    del workbook["Sheet"]

    workbook.remove(workbook["测试"])

    写入某个单元格

    import openpyxl

    workbook=openpyxl.Workbook()

    sheet=workbook.active

    sheet[“A1”]=“产品名称”  #产品名称写入A1单元格

    sheet[“A2”]=“华为手机”  #华为手机写入A2单元格

    workbook.save("data\input\Test.xlsx")

    批量向单元格写入数据

    import openpyxl

    workbook=openpyxl.Workbook()

    sheet=workbook.active

    data_list=[

        ["产品编号","产品名称","零售价格","销售数量"],

        ["A1001", "PG手机", "4500", "18"],

        ["A1002", "HW电脑", "7500", "5"],

        ["A1003", "HW平板", "2300", "10"],

        ["B1001", "HW手机", "5500", "12"],

        ["B1001", "HW手机", "5500", "12"]

    ]

    for row in data_list:

        sheet.append(row)

    workbook.save("data\input\Test.xlsx")

    读取A Excel文件筛选后写入B Excel文件

    from openpyxl import load_workbook

    from openpyxl import Workbook

    def filter_excel(source_file, target_file):

        # 打开源文件和目标文件

        source_wb = load_workbook(source_file)

        target_wb = Workbook()

        # 获取源文件和目标文件的工作表

        source_sheet = source_wb.active

        target_sheet = target_wb.active

        #写入标题列

        title_row = list(source_sheet.iter_rows(min_row=1, max_row=1,max_col=4, values_only=True))[0]

        target_sheet.append(title_row)

        # 遍历源文件的每一行

        for row in source_sheet.iter_rows(min_row=2,max_row=29,min_col=1,max_col=4):

            # 获取价格所在的列索引

            price = row[2].value

            # 检查价格是否大于5000

            if price and price > 5000:

                # 将符合条件的行写入目标文件,遍历每行的单元格的值,以列表形式返回

                target_sheet.append([cell.value for cell in row])

        # 保存目标文件

        target_wb.save(target_file)

    # 调用函数

    filter_excel("data\input\销售明细表.xlsx", "data\input\Test.xlsx")

    效果如下

    写入公式,并自动填充

    #openpyxl 设置公式并自动填充
    import openpyxl
    from openpyxl.utils import get_column_letter
    
    workbook = openpyxl.load_workbook("data\input\Test.xlsx")
    worksheet = workbook.active
    #设置公式 自动填充
    for row in range(2,worksheet.max_row+1):
        cell_formula = f'=C{row}*D{row}'
        worksheet[f'E{row}'] = cell_formula
    
    workbook.save("data\input\Test.xlsx")

  • 相关阅读:
    lightgbm使用multiclass训练二分类模型
    C++11标准模板(STL)- 算法(std::transform)
    阿里巴巴内部:2022年全技术栈(架构篇+算法篇+大数据)你值得拥有
    vite 关于 global is not defined 问题
    奇搜宝在线字典微信小程序 v1.0
    【前端进阶】-TypeScript高级类型 | 泛型约束、泛型接口、泛型工具类型
    4.nodejs--nodejs简介、AJAX、MVC
    常见的设计模式
    transformers安装避坑
    7.2、如何理解Flink中的水位线(Watermark)
  • 原文地址:https://blog.csdn.net/Marshaljun/article/details/133549139