Python办公自动化【合并单元格-openpyxl、增加图表-openpyxl、合并工作薄-openpyxl、合并多个文件工作薄-openpyxl】(三)-全面详解(学习总结---从入门到深化)(下)

简介: Python办公自动化【合并单元格-openpyxl、增加图表-openpyxl、合并工作薄-openpyxl、合并多个文件工作薄-openpyxl】(三)-全面详解(学习总结---从入门到深化)

Python办公自动化【合并单元格-openpyxl、增加图表-openpyxl、合并工作薄-openpyxl、合并多个文件工作薄-openpyxl】(三)-全面详解(学习总结---从入门到深化)(上):https://developer.aliyun.com/article/1420325


代码

from openpyxl import load_workbook
def merger_file():
  from openpyxl import Workbook,load_workbook
  # 创建一个新的excel文件,用来存储合并好的数据
  wb = Workbook()
  # 激活当前的Sheet
  sh = wb.active
  # 获取文件
  import os
  names = os.listdir('./base_data/销售表')
  for name in names:
    load_path = f'./base_data/销售表/{name}'
    # 读取文件
    tmp_wb = load_workbook(load_path)
    # 激活读取的文件的Sheet
    tmp_sh = tmp_wb.active
    # 获取里面的数据
    for r in range(2,tmp_sh.max_row+1):
      # 建立一个列表来保存数据
      row_data = []
      for c in range(1,tmp_sh.max_column+1):
        # 通过行和列的索引获取数据
        value = tmp_sh.cell(r,c).value
        # 将当前列的数据增加到一行中记录
        row_data.append(value)
      # 将当前行数据增加到新的excel中
      sh.append(row_data)
  # 保存
  wb.save('./create_data/21_合并多个文件.xlsx')
if __name__ == '__main__':
  merger_file()


Excel合并多个文件工作薄-openpyxl



代码

def merger_file():
  from openpyxl import Workbook,load_workbook
  # 创建一个excel文件,用来保存合并的数据
  wb = Workbook()
  # 获取要合并的文件的文件名
  import os
  names = os.listdir('./base_data/销售表')
  # 遍历文件名,依次取出
  for name in names:
    # 拼接excel完整地址
    path = f'./base_data/销售表/{name}'
    # 获取新的创建的Sheet的名称
    sheet_name = name[:-5]
    # 加载要合并的excel文件
    tmp_wb = load_workbook(path)
    # 激活要合 并的excel文件的Sheet
    tmp_sh = tmp_wb.active
    # 在新的excel中创建一个新的Sheet,名称为合并的文件名
    new_sh = wb.create_sheet(sheet_name)
    # 获取行数据
    for r in range(1,tmp_sh.max_row+1):
      # 定义一个列表用来存储当前行的所有数据
      all_data = []
      # 获取列数据
      for c in range(1,tmp_sh.max_column+1):
        value = tmp_sh.cell(r,c).value
        all_data.append(value)
     # 将数据保存到新的excel中
      new_sh.append(all_data)
  # 删除自动生成的Sheet
  del wb['Sheet']
  # 保存新Excel文件修改
  wb.save('./create_data/22_合并多个文件2.xlsx')
if __name__ == '__main__':
  merger_file()


Excel快速生成工资条



代码

def create_excel():
  from openpyxl import load_workbook,Workbook
  # 加载文件,data_only=True代表显示值
  wb = load_workbook('./base_data/工资数据.xlsx',data_only=True)
  sh = wb.active
  # 读取数据-遍历每行数据
  # 建立一个title列表,用于存储标题
  title = []
  for i,r in enumerate(sh.rows):
    # 判断是否第一行数据
    if i == 0:
      for c in r:
        title.append(c.value)
    else:
      row_data=[]
      for c in r:
        row_data.append(c.value)  
      # 创建一个新的excel文件
      new_wb =  Workbook()
      # 激活Sheet
      new_sh = new_wb.active
      # 增加数据
      new_sh.append(title)
      new_sh.append(row_data)
      # 保存数据
 new_wb.save(f'./create_data/gong_zi/{r[1].value}.xlsx')
if __name__ == '__main__':
  create_excel()


Excel一键格行换色



代码

def create_excel():
  from datetime import date
  from openpyxl import Workbook
  from openpyxl.styles import PatternFill
  # 创建一个excel对象
  wb = Workbook()
  # 激活Sheet
  sh = wb.active
  # 增加数据
  rows = [
   ['Date', 'Batch 1', 'Batch 2','Batch 3'],
   [date(2030,12, 1), 40, 30, 25],
   [date(2030,12, 2), 40, 25, 30],
   [date(2030,12, 3), 50, 30, 45],
   [date(2030,12, 4), 30, 25, 40],
   [date(2030,12, 5), 25, 35, 30],
   [date(2030,12, 6), 20, 40, 35],
 ]
  for r in rows:
   sh.append(r)
  # 创建样式
  bg_color = PatternFill('solid',fgColor='AEEEEE')
  # 设置样式
  for r in range(1,sh.max_row+1):
    if r%2==0:
      for c in range(1,sh.max_column+1):
        sh.cell(r,c).fill = bg_color
  # 保存excel文件
  wb.save('./create_data/23_隔行换色.xlsx')
if __name__ == '__main__':
  create_excel()


Excel统计加班时间



代码

def create_excel():
  from datetime import date
  from openpyxl import Workbook
  # 创建excel对象
  wb = Workbook()
  # 激活数据
  sh = wb.active
  # 增加数据
  rows = [
   ['Date', '姓名', '打卡时间'],
   [date(2030,12, 1), '吕小布','18:50'],
   [date(2030,12, 2),'貂的蝉','18:10'],
   [date(2030,12, 3),'刘备','18:02'],
   [date(2030,12, 4),'吕小布','18:50'],
   [date(2030,12, 5), '张飞','19:22'],
   [date(2030,12, 6), '吕小布','18:50'],
 ]
  for row in rows:
    sh.append(row)
  wb.save('./create_data/24_统计加班时间.xlsx')
def statistics():
   from openpyxl import load_workbook,Workbook
  # 读取数据
  wb = load_workbook('./create_data/24_统计加班时间.xlsx')
  sh = wb.active
  # 统计
  data = []
  for row in range(2,sh.max_row+1):
    # 一条完整的数据
    row_data = []
    for col in range(1,sh.max_column+1):
      value = sh.cell(row,col).value
      row_data.append(value)
    # 统计时间
    # 获取时间
    h,m = row_data[2].split(':')
    # 计算时间 从0:00到打卡的时间
    full = int(h)*60 + int(m)
    rs = full - 18*60
    # 将结果保存到最后一列
    row_data.append(rs)
    #------处理时间 显示问题------
    row_data[0] = row_data[0].date()
    data.append(row_data)
  # 保存
  wb = Workbook()
  sh = wb.active
  for d in data:
    sh.append(d)
  wb.save('./create_data/24_统计加班时间.xlsx')
if __name__ == '__main__':
  create_excel()
  statistics()


目录
相关文章
|
5天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。
|
2天前
|
数据采集 存储 数据库
Python中实现简单爬虫的入门指南
【10月更文挑战第22天】本文将带你进入Python爬虫的世界,从基础概念到实战操作,一步步指导你如何使用Python编写一个简单的网络爬虫。我们将不展示代码示例,而是通过详细的步骤描述和逻辑讲解,帮助你理解爬虫的工作原理和开发过程。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往数据收集新世界的大门。
|
2天前
|
存储 人工智能 数据挖掘
Python编程入门:构建你的第一个程序
【10月更文挑战第22天】编程,这个听起来高深莫测的词汇,实际上就像搭积木一样简单有趣。本文将带你走进Python的世界,用最浅显的语言和实例,让你轻松掌握编写第一个Python程序的方法。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们一起开始这段奇妙的编程之旅吧!
10 3
|
1天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
8 1
|
1天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
7 1
|
3天前
|
数据采集 机器学习/深度学习 搜索推荐
Python自动化:关键词密度分析与搜索引擎优化
Python自动化:关键词密度分析与搜索引擎优化
|
3天前
|
存储 程序员 开发者
Python编程入门:从零开始掌握基础语法
【10月更文挑战第21天】本文将带你走进Python的世界,通过浅显易懂的语言和实例,让你快速了解并掌握Python的基础语法。无论你是编程新手还是想学习一门新的编程语言,这篇文章都将是你的不二之选。我们将一起探索变量、数据类型、运算符、控制结构、函数等基本概念,并通过实际代码示例加深理解。准备好了吗?让我们开始吧!
|
3天前
|
数据采集 机器学习/深度学习 数据可视化
深入浅出:用Python进行数据分析的入门指南
【10月更文挑战第21天】 在信息爆炸的时代,掌握数据分析技能就像拥有一把钥匙,能够解锁隐藏在庞大数据集背后的秘密。本文将引导你通过Python语言,学习如何从零开始进行数据分析。我们将一起探索数据的收集、处理、分析和可视化等步骤,并最终学会如何利用数据讲故事。无论你是编程新手还是希望提升数据分析能力的专业人士,这篇文章都将为你提供一条清晰的学习路径。
|
4天前
|
调度 开发者 Python
探索Python中的异步编程:从入门到精通
在这个快节奏的技术时代,异步编程成为了提升应用性能的关键。本文将带你深入Python的异步编程世界,从基础概念到高级技巧,一探究竟。我们将一起学习如何利用Python的asyncio库来构建高效、响应迅速的异步应用。摘要部分,我们将以一个独特的视角,用一个简短的故事来吸引读者的兴趣,而不是传统的介绍性文字。