python办公自动化(Excel)的实例教程

 更新时间:2022年11月15日 11:50:52   作者:想成为工程师的菜鸟  
使用Excel自动化处理,将会用到Python第三方库,所以我们需要提前通过来进行安装,下面这篇文章主要给大家介绍了关于python办公自动化(Excel)的相关资料,需要的朋友可以参考下

一、读取Excel中的数据

安装

xlrd 只能读取Excel内容

pip install xlrd==1.2.0

xlrd库的open_workbook函数打开Excel文件,并且返回一个Book对象,这个对象代表打开的Excel文件。

通过Book对象得到Excel文件的很多信息,比如 表单数量 和 表单名称

import xlrd

book - xlrd.open_workbook('income.xlsx')

print(f"表单数量 {book.nsheets}")
print(f"表单名称 {book.sheet_names()}")

要读取某个表单里单元格中的数据,必须要先获取表单(sheet)对象

# 表单索引从0开始,获取第一个表单对象
book.sheet_by_index( 0 )

# 获取名为2022的表单对象
book.sheet_by_name('2022')

# 获取所有的表单对象,放入一个列表返回
book.sheet()

获取了表单对象后,可根据起其属性得到:

表单行数 nrows
列数 ncols
表单名 name
表单索引 number

# 获取了表单对象后,可以使用cell_value方法,读取指定单元格中的文本内容
sheet.cell_value(rowx=0,colx=0)

# 读取指定行所有单元格的内容使用row_values方法,参数为行号,存放在一个列表中返回
sheet.row_value(rowx=0)

# 读取指定列所有单元格的内容使用col_values方法,参数为行号,存放在一个列表中返回
sheet.col_value(colx=0)

二、新建Excel,写入数据

创建一个新的Excel并写入数据,需要使用openpyxl库

openpyxl 库可读、写、改,但不支持老版本 Office2003的xls格式

import openpyxl

# 创建一个Excel workbook 对象
book = openpyxl.Workbook()

# 创建时,会自动产生一个sheet,通过active获取
sh = book.active

# 修改当前 sheet 标题为 工资表
sh.title = '工资表'

# 保存文件
book.save('信息.xlsx')

# 增加一个名为 '年龄表' 的sheet,放在最后
sh1 = book.create_sheet('年龄表-最后')

# 增加一个 sheet,放在最前
sh2 = book.create_sheet('年龄表-最前',0)

# 增加一个 sheet,指定为第2个表单
sh3 = book.create_sheet('年龄表2',1)

# 根据名称获取某个sheet对象
sh = book['工资表']

# 给第一个单元格写入内容
sh['A1'] = '你好'

# 获取某个单元格内容
print(sh['A1'].value)

# 根据行号列号, 给第一个单元格写入内容,
# 注意和 xlrd 不同,是从 1 开始
sh.cell(2,2).value = '白月黑羽'

# 根据行号列号, 获取某个单元格内容
print(sh.cell(1, 1).value)

book.save('信息.xlsx')

插入行、列
sheet 对象的 insert_rows 和 insert_cols 方法,分别用来插入行和列

删除行、列
sheet 对象的 delete_rows 和 delete_cols 方法,分别用来删除行和列

文字颜色、字体、大小
单元格里面的样式风格(包括颜色、字体、大小、下划线等)都是通过Font对象设定的

import openpyxl
# 导入Font对象 和 colors 颜色常量
from openpyxl.styles import Font,colors

wb = openpyxl.load_workbook('income.xlsx')
sheet = wb['2018']

# 指定单元格字体颜色,
sheet['A1'].font = Font(color=colors.RED, #使用预置的颜色常量
                        size=15,    # 设定文字大小
                        bold=True,  # 设定为粗体
                        italic=True # 设定为斜体
                        )

# 也可以使用RGB数字表示的颜色
sheet['B1'].font = Font(color="981818")

# 指定整行 字体风格, 这里指定的是第3行
font = Font(color="981818")
for y in range(1, 100): # 第 1 到 100 列
    sheet.cell(row=3, column=y).font = font

# 指定整列 字体风格, 这里指定的是第2列
font = Font(bold=True)
for x in range(1, 100): # 第 1 到 100 行
    sheet.cell(row=x, column=2).font = font

# 指定 某个单元格背景色
sheet['A1'].fill = PatternFill("solid", "E39191")

# 指定 整行 背景色, 这里指定的是第2行
fill = PatternFill("solid", "E39191")
for y in range(1, 100): # 第 1 到 100 列
    sheet.cell(row=2, column=y).fill = fill

# 在第1行,第4列 的位置插入图片
sheet.add_image(Image('1.png'), 'D1')

wb.save('income-1.xlsx')

补充:Excel文件批量合并

工具包

# 导入工具包
import pandas as pd
import os

获取文件列表

# 设置文件路径
path = 'C:/Users/yyz/Desktop/python办公技巧/data/数据合并/'
# 空列表, 用于存放文件路径
files = []
for file in os.listdir(path):
    if file.endswith(".xlsx"):
        files.append(path+file)

# 查看列表
files

转换存储数据

# 定义一个空的dataframe
data = pd.DataFrame()  

# 遍历所有文件
for file in files:
    datai = pd.read_excel(file)
    datai_len = len(datai)
    data = data.append(datai)   # 添加到总的数据中
    print('读取%i行数据,合并后文件%i列, 名称:%s'%(datai_len,len(data.columns),file.split('/')[-1]))     
    # 查看是否全部读取,格式是否出错
# 重置索引    
data.reset_index(drop=True,inplace=True)

总结

到此这篇关于python办公自动化(Excel)的文章就介绍到这了,更多相关python办公自动化Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python报错:OSError: [Errno 22] Invalid argument解决方案及应用实例

    Python报错:OSError: [Errno 22] Invalid argument解决方案及应用实例

    最近跑别人的项目遇到一个这样的问题一开始以为是没有用管理员的权限运行,导致创建不了日志文件后来发现是和windows的命名规则冲突了,这篇文章主要给大家介绍了关于Python报错:OSError: [Errno 22] Invalid argument的解决方案及应用实例,需要的朋友可以参考下
    2024-07-07
  • python使用rsa非对称加密过程解析

    python使用rsa非对称加密过程解析

    这篇文章主要介绍了python使用rsa非对称加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 在服务器上安装python3.8.2环境的教程详解

    在服务器上安装python3.8.2环境的教程详解

    这篇文章主要介绍了在服务器上安装python3.8.2环境的教程详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Python3中详解fabfile的编写

    Python3中详解fabfile的编写

    这篇文章给大家分享了Python3中详解fabfile的编写的相关知识点以及重要内容,有兴趣的朋友跟着学习下。
    2018-06-06
  • python中set()函数简介及实例解析

    python中set()函数简介及实例解析

    这篇文章主要介绍了python中set()函数简介及实例解析,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 教你如何在Django 1.6中正确使用 Signal

    教你如何在Django 1.6中正确使用 Signal

    因为新的django开发人员得知signal之后, 往往会很高兴去使用它. 他们在能使用signal的地方就使用signal, 并且这是他们觉得自己是django专家一样. 然而, 像这样编码一段时间后, django项目就会变得异常复杂, 许多内容都纠结在一起无法解开.
    2014-06-06
  • Python学习之字符串函数使用详解

    Python学习之字符串函数使用详解

    Python的友好在于提供了非常好强大的功能函数模块,对于字符串的使用,同样提供许多简单便捷的字符串函数。Python 字符串自带了很多有用的函数,快来跟随小编学习一下这些函数的应用详解吧
    2021-12-12
  • Python绘制散点图之可视化神器pyecharts

    Python绘制散点图之可视化神器pyecharts

    这篇文章主要介绍了Python绘制散点图之可视化神器pyecharts,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-07-07
  • 基于并发服务器几种实现方法(总结)

    基于并发服务器几种实现方法(总结)

    下面小编就为大家分享一篇基于并发服务器几种实现方法(总结),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • python实现二叉排序树

    python实现二叉排序树

    这篇文章主要介绍了python实现二叉排序树,
    2022-01-01

最新评论