python自动化办公

本文介绍了Python如何操作Excel文件,包括使用openpyxl模块创建、读取和修改xlsx文件,以及生成和读取学生成绩表。还讨论了绝对路径和相对路径的概念,并在自动化办公的背景下探讨了相关库的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、python能够操作Excel模块

excel 文件后缀名xls xlsx

xls:office 2003及以前

xlsx:office 2007及以后

新版office向前兼容

xlsx文件比xls文件体积缩小(保存同样的数据)

xlsx文件存储的数据量大于旧版xls文件

xls文件最多存储256列、2^16行数据

xlsx文件最多1048576行,16384列

from openpyxl import Workbook,load_workbook

Workbook:当文件不存在时,使用Workbook创建

使用Workbook创建的文件我们看不到,但是系统知道,如果想让文件出现,必须保存

当文件经存在,使用load_workbook加载

from openpyxl import Workbook,load_workbook

wb=Workbook()

Excel写操作

创建工作表:create_sheet(表名,下标)

wb.create_sheet(‘一年级一班’)

下标:代表新建的工作表的位置,不写代表末尾追加

wb.create_sheet(‘一年级一班’,0)

sheet1.title='一年级二班'

查看已经存在的表名 wb.sheetnames

sheetlist=wb.sheetnames

print(sheetlist)  #['一年级一班1', 'Sheet', '一年级一班']

指定工作簿中的工作表  wb.active
     #指定打开(关闭文件时显示在上层的工作表)工作表
sheet1=wb.active
print(sheet1)
#修改表名
sheet1.title='一年级二班'

     # 指定打开已经存在的工作表  wb['表名']
sheet2=wb['一年级一班']
print(sheet2)

向指定单元格写入内容,查看某个单元格内容

工作表[列号行号] #列号表示大写英文字母

工作表.cell(行号,列号) #列号表示从1递增数字

value查看单元格值,往单元格写入内容

print(sheet1.cell(1, 1).value)  #sheet1表 None
sheet1.cell(1, 1).value='姓名'  #sheet1表 姓名
sheet1.cell(1, 2).value='语文'  #sheet1表 姓名
print(sheet1.cell(1, 1).value)


第二种

print(sheet2['A1'].value) #None
sheet1['C1'].value='数学'  #c1单元格为数学
print(sheet1['C1'].value)

删除已经存在的表

wb.remove_sheet()#表对象
wb.remove_sheet(wb['Sheet'])

保存

wb.save('学生成绩.xlsx')
print('完成')

二、生成学生成绩表

from openpyxl import load_workbook #引入openpyxl模块
from random import randint  #后续会引入random模块
  1. 加载已经存在的文件
wb=load_workbook('学生成绩.xlsx')
  1. 查看已经存在的所有工作表
all_sheet=wb.sheetnames
  1. 指定一张工作表
sheet=wb['一年级一班']
  1. 学生成绩表生成规则

姓名、语文、数学、英语 4列

100名学生,姓名列填入python001 - python100

成绩三列从[0-100]中随机生成填入

#将第一行4列的数据填入1行各4列中

column=['姓名','语文','数学','英语']
for i in range(len(column)):
    sheet.cell(1,i+1).value=column[i]
  
for i in range(1,101):  #写姓名
    name1=f'python{i:0>3}'
    sheet.cell(i+1,1).value=name1
  

#写每个学生的三科成绩
for j in range(2,5):
    sheet.cell(i+1,j).value=randint(0,100)   #成绩从[0-100]中随机生成填入
#保存
wb.save('学生成绩表.xlsx')
print('完成')
    

三、读学生成绩表

from openpyxl import load_workbook
wb=load_workbook('学生成绩表.xlsx')  #加载需要的表
all_sheet=wb.sheetnames  #查看所有的工作表
sheet=wb['一年级一班']  #指定一个工作表
rows=sheet.max_row
cols=sheet.max_column
print(rows,cols) #查看这个表的最大行和最大列

for i in range(1,rows+1):
    for j in range(1,cols+1):
        print(sheet.cell(i,j).value)


四、相对路径和绝对路径

绝对路径

C:\文件夹\文件夹\文件夹…\文件

相对路径

语法:

. 表示 当前文件夹,可以省略不写

… 表示当前文件夹的上一级

文件夹和文件夹之间或者和文件之间使用 / 斜杠分隔

问题:

假设目前处于文件夹B中,寻找文件A,绝对路径和相对路径分别怎么写?

在这里插入图片描述

绝对路径:始终是以根目录盘符为参照物

C:\文件夹A\文件夹C\文件A

相对路径:以当前文件夹为参照物

…/文件夹A/文件夹C/文件A

练习

将成都二手房这个工作簿里面的几个工作表数据,汇总到一个新的工作表中。

from openpyxl import load_workbook
wb = load_workbook('成都二手房.xlsx')
all_sheet = wb.sheetnames
if '汇总' not in all_sheet:
    wb.create_sheet('汇总')
    all_sheet = wb.sheetnames
    hs=2
    for i in range(1, wb[all_sheet[0]].max_column + 1):
        wb['汇总'].cell(1, i).value = wb[all_sheet[0]].cell(1, i).value

    for x in all_sheet[:-1]:
        sheet=wb[x]
        for j in range(2, sheet.max_row + 1):
            for i in range(1,sheet.max_column + 1):
                wb['汇总'].cell(hs, i).value = sheet.cell(j, i).value
            hs+=1


wb.save('成都二手房.xlsx')
print('完成')
          
            
    

openpysl xlrd xlwt pandas xlutils xlsxwriter

openpysl只能操作xlsx后缀名的Excel文件
xlrd(只能读) 、xlwt(只能写)只能操作xls后缀名的Excel文件

五、自动化办公

概念

三、openpyxl模块操作xlsx

手动创建Excel工作表

  • 引入模块

from openpyxl import load_workbook

1.** 加载已经存在的文件**

wb=load_workbook(‘学生成绩.xlsx’)

2.** 查看已经存在的工作表**

sheetlist=wb.

xlutils xlsxwriter

openpysl只能操作xlsx后缀名的Excel文件

xlrd(只能读) 、xlwt(只能写)只能操作xls后缀名的Excel文件

二、自动化办公概念

概念(略)

三、openpyxl模块操作xlsx

手动创建Excel工作表

  • 引入模块

from openpyxl import load_workbook

  1. 加载已经存在的文件

wb=load_workbook(‘学生成绩.xlsx’)

  1. 查看已经存在的工作表

sheetlist=wb.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值