python办公自动化,操作Excel表格,10分钟完成两小时的工作!

操作工作簿

01 新建一个excel工作簿

#2023-4-17
import xlwings as xw
# 启动 excel,但不新建工作簿  app是什么,app是excel程序本身
app = xw.App(visible=True,add\_book=True)

#新建一个工作簿
workbook=app.books.add()

# 保存新建的工作簿
workbook.save('D:\\python\_data/test.xlsx')
workbook.close()

#关闭excel软件
app.quit()

02 批量新建多个工作簿

#2023-4-17
import xlwings as xw
# 启动 excel,但不新建工作簿  app是什么,app是excel程序本身
app = xw.App(visible=False,add\_book=False)  #后台运行

for i in range(1,13): #左闭右开
    workbook=app.books.add()
    workbook.save(f'D:\\\\python\_data\\\\excelbook\\\\{i}月报表.xlsx')
    workbook.close()

#关闭excel软件
app.quit()

03 打开已有的工作簿

import xlwings as xw
app \= xw.App(visible=True,add\_book=False)
app.books.open(f'D:\\\\python\_data\\\\发票信息.xlsx')

04 打开文件夹下的所有工作簿

import xlwings as xw
from pathlib import Path
#打开excel软件
app=xwapp = xw.App(visible=True,add\_book=False)
#需要一个excel文件的list
folder\_path=Path('C:\\\\Users\\\\hank-02\\\\Desktop\\\\新建文件夹 (2)')  #这里用了相对路径,相对路径要双斜线\\\\
excel\_file\_list=folder\_path.glob('\*.xls\*')  #  判断文件夹下文件的扩展名是否为xls,或者xlsx

for file in excel\_file\_list:
    app.books.open(file)

05 重命名多个工作簿

from pathlib import Path

#第一步获取符合条件的文件列表
file\_path=Path('D:\\\\python\_data\\\\excelbook')  #待重命名工作簿所在的文件夹
file\_list=file\_path.glob('\*月.xlsx') #查找文件夹下所有与 月结尾的工作簿匹配的文件

#遍历上述列表,循环重命名文件

for old\_file in file\_list:
    old\_file\_name\=old\_file.name  #获取当前文件名
    new\_file\_name=old\_file\_name.replace('月','月报表') #通过替换字符串方法生成新的文件名
    new\_file=old\_file.with\_name(new\_file\_name) #通过with\_name 生成一个新的文件对象
    old\_file.rename(new\_file) #通过rename方法重命名文件

06 批量修改工作簿格式

#批量转换工作簿的格式,将所有的xlsx格式文件,另存为xls格式的文件
from pathlib import Path

import xlwings as xw
app \= xw.App(visible=False,add\_book=False)

folder\_path\=Path('D:\\\\python\_data\\\\excelbook') #  给出工作簿所在的文件夹路径
file\_list\=folder\_path.glob('\*.xlsx')   #查找文件夹下所有xlsx的工作簿文件

for file in file\_list:
    
    if '$' in file.name:   #如果文件包含临时文件,则跳过 
        continue;
        
    print('开始转换:'+file.name)
    new\_file\_path\=str(file.with\_suffix('.xls'))
    workbook\=app.books.open(file)
    workbook.api.SaveAs(new\_file\_path,FileFormat\=56)
    workbook.close()
    print('完成转换:'+ new\_file\_path)

#关闭excel软件
app.quit()

07 拆分一个工作簿变成多个新工作簿

#拆分一个工作簿变成多个新工作簿
from pathlib import Path

import xlwings as xw
app \= xw.App(visible=False,add\_book=False)

source\_workbook\=app.books.open('D:\\\\python\_data\\\\excelbook\\\\拆分工作簿.xlsx')#打开需要拆分的工作簿
source\_worksheets\=source\_workbook.sheets #获取拆分工作簿里面是所有sheet

for worksheet in source\_worksheets:
    #1 新建一个目标工作簿workbook
    new\_workbook=app.books.add()
    #2 创建第一个sheet,  选择目标工作簿中的第一表
    new\_worksheet=new\_workbook.sheets\[0\]
    #3 复制sheet内容到新sheet中
    worksheet.copy(before=new\_worksheet)
    #4 保存并关闭
    new\_workbook.save(f'D:\\\\python\_data\\\\excelbook\\\\拆分后的\\\\{worksheet.name}.xlsx')
    new\_workbook.close()

    
source\_workbook.close()

#关闭excel软件
app.quit()

08 将多个工作簿合并为一个工作簿

from pathlib import Path
import pandas as pd

file\_list \=Path('C:\\\\Users\\\\hank-02\\\\Desktop\\\\测试数据').glob('\*.xlsx')
frozen\_file\_list\=\[\]
for i in file\_list:
    frozen\_file\_list.append(i)

with pd.ExcelWriter('C:\\\\Users\\\\hank-02\\\\Desktop\\\\测试数据\\\\总表.xlsx') as workbook:
    for file in frozen\_file\_list:
        #读取单个文件,只读了数据本身,没有把格式一并读出来file.stem
        data=pd.read\_excel(file,sheet\_name=0)
        data.to\_excel(workbook,sheet\_name\=file.stem,index=False)

09 按照扩展名分类工作簿

from pathlib import Path
folder\_path\=Path('C:\\\\Users\\\\hank-02\\\\Desktop\\\\测试数据')  #数据源
file\_list=folder\_path.glob('\*.xls\*')
#1、遍历文件列表
for i in file\_list:
    suffix\_name\=i.suffix
    new\_folder\_path\=Path('C:\\\\Users\\\\hank-02\\\\Desktop\\\\测试数据\\\\'+suffix\_name.replace('.',''))#测试数据后面要加个\\\\,代表是在这个文件夹下进行分类
#2、判断当前文件扩展名,查看扩展名目录是否存在,不存在的话就创建一个新的目录
    if not new\_folder\_path.exists():
        new\_folder\_path.mkdir()
    
#3、移动文件
    i.replace(new\_folder\_path/i.name)

10 按照日期分类工作簿

from pathlib import Path
from time import localtime

folder\_path\=Path('C:\\\\Users\\\\hank-02\\\\Desktop\\\\测试数据')
file\_list\=folder\_path.glob('\*.xls\*')

#1、遍历文件列表
for i in file\_list:
    #2、根据文件最好修改日期的年份和月份,组成目录
    lm\_date=i.stat().st\_mtime
    year\=localtime(lm\_date).tm\_year
    month\=localtime(lm\_date).tm\_mon
    new\_folder\_path\=folder\_path/str(year)/str(month)
    if not new\_folder\_path.exists():
        new\_folder\_path.mkdir(parents\=True)
    i.replace(new\_folder\_path/i.name)

11 精确查找工作簿

from pathlib import Path
folder\_path\_str \= input('请输入查找的路径:')
file\_name\_str\= input('请输入要查找的工作簿名称:')
folder\_path \= Path(folder\_path\_str)
file\_list \= folder\_path.rglob(file\_name\_str) # rglob 用于指定文件夹及其子文件夹中查找名称符合指定规则的文件或文件
for i in file\_list:
    print(i)

12 按关键字查找工作簿

from pathlib import Path
folder\_path\_str \= input('请输入查找的路径:')
key\_word\= input('请输入关键字:')
folder\_path \= Path(folder\_path\_str)
file\_list \= folder\_path.rglob(f'\*{key\_word}\*.xls\*')  #rglob 用于指定文件夹及其子文件夹中查找名称符合指定规则的文件或文件
for i in file\_list:
    print(i)

13 保护一个工作簿的结构

import xlwings as xw
app\=xw.App(visible=False,add\_book=False)
workbook\=app.books.open('C:\\\\Users\\\\hank-02\\\\Desktop\\\\工作\\\\交接文档\\\\南山固定资产.xlsx')

workbook.api.Protect(Password\='123',Structure=True,Windows=False)
workbook.save()
workbook.close()
app.quit()

14 加密保护一个工作簿

import xlwings as xw
app\=xw.App(visible=False,add\_book=False)
workbook\=app.books.open('C:\\\\Users\\\\hank-02\\\\Desktop\\\\工作\\\\交接文档\\\\南山固定资产.xlsx')

workbook.api.Password\='123'
workbook.save()
workbook.close()
app.quit()

15 加密保护多个工作簿

from pathlib import Path
import xlwings as xw
app\=xw.App(visible=False,add\_book=False)
folder\_path\=Path('C:\\\\Users\\\\hank-02\\\\Desktop\\\\测试数据\\\\2023\\\\5')
file\_list\=folder\_path.glob('\*.xls\*')

for i in file\_list:
    workbook\=app.books.open(i)
    workbook.api.Password\='123'
    workbook.save()
    workbook.close()

app.quit()

操作工作表

16 提取一个工作簿中所有工作表的名称

#提取一个工作簿中所有工作表的名称(方法一:)
import xlwings as xw
app\=xw.App(visible=False,add\_book=False)
workbook\=app.books.open('C:\\\\Users\\\\hank-02\\\\Desktop\\\\2023-3-31南山固定资产(重要).xlsx')
worksheets\=workbook.sheets
sheet\_name\_list\=\[\]
for i in worksheets:
    sheet\_name\_list.append(i.name)

workbook.close()
app.quit()
print(sheet\_name\_list)

#提取一个工作簿中所有工作表的名称(方法二:)
import pandas as pd

file\_path\='C:\\\\Users\\\\hank-02\\\\Desktop\\\\2023-3-31南山固定资产(重要).xlsx'

data\=pd.read\_excel(file\_path,sheet\_name=None)

#print(type(data))#data是字典类型
worksheet\_name\=list(data.keys())
print(worksheet\_name)

17 在一个工作薄中新增一个工作表

#在一个工作薄中新增一个工作表
import xlwings as xw
app\=xw.App(visible=False,add\_book=False)
workbook\=app.books.open('C:\\\\Users\\\\hank-02\\\\Desktop\\\\2023-3-31南山固定资产(重要).xlsx')
worksheets\=workbook.sheets
new\_sheet\_name\='测试'

sheet\_name\_list\=\[\]
for i in worksheets:
    sheet\_name\_list.append(i.name)
if new\_sheet\_name not in sheet\_name\_list:
    worksheets.add(name\=new\_sheet\_name)

workbook.save()
workbook.close()
app.quit()

18 在一个工作簿中删除一个工作表

#在一个工作簿中删除一个工作表
import xlwings as xw
app\=xw.App(visible=False,add\_book=False)
workbook\=app.books.open('C:\\\\Users\\\\hank-02\\\\Desktop\\\\2023-3-31南山固定资产(重要).xlsx')
worksheets\=workbook.sheets
del\_sheet\_name\='测试'

for i in worksheets:
    if i.name==del\_sheet\_name:
        i.delete()
        break

workbook.save()
workbook.close()
app.quit()

19 在多个工作簿中批量新增工作表

#在多个工作簿中批量新增工作表
import xlwings as xw
from pathlib import Path

#1、获取文件列表
file\_list\=Path('C:\\\\Users\\\\hank-02\\\\Desktop\\\\新建文件夹2').glob('\*.xls\*')

new\_sheet\_name\='测试表'

app\=xw.App(visible=False,add\_book=False)

for file in file\_list:
    workbook\=app.books.open(file)
    worksheets\=workbook.sheets
    sheet\_name\_list\=\[\]
    for i in worksheets:
        sheet\_name\_list.append(i.name)
    if new\_sheet\_name not in sheet\_name\_list:
        worksheets.add(name\=new\_sheet\_name)

    workbook.save()
    workbook.close()
    
app.quit()

20 在多个工作簿中批量删除工作表

#在多个工作簿中批量删除工作表
import xlwings as xw
from pathlib import Path

#1、获取文件列表
file\_list\=Path('C:\\\\Users\\\\hank-02\\\\Desktop\\\\新建文件夹2').glob('\*.xls\*')

del\_sheet\_name\='测试表'

app\=xw.App(visible=False,add\_book=False)

for file in file\_list:
    workbook\=app.books.open(file)
    worksheets\=workbook.sheets
    
    for i in worksheets:
        if i.name==del\_sheet\_name:
            i.delete()
            break

    workbook.save()
    workbook.close()
    
app.quit()

好了,今天的分享就到这里!如果你对Python感兴趣,想要学习pyhton,这里给大家分享一份Python全套学习资料,里面的内容都是适合零基础小白的笔记和资料,超多实战案例,不懂编程也能听懂、看懂。

需要的话可以微信扫描下方二维码免费获得。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
python办公自动化,操作Excel表格,10分钟完成两小时的工作!_第1张图片
二、Python学习软件

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
python办公自动化,操作Excel表格,10分钟完成两小时的工作!_第2张图片
三、Python入门学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
python办公自动化,操作Excel表格,10分钟完成两小时的工作!_第3张图片
四、Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
python办公自动化,操作Excel表格,10分钟完成两小时的工作!_第4张图片
五、Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
python办公自动化,操作Excel表格,10分钟完成两小时的工作!_第5张图片
六、副业兼职
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
七、资料领取
由于篇幅有限,很多资料图片放不上来。需要的小伙伴可以微信扫描下方CSDN官方认证二维码领取(免费免费免费)

你可能感兴趣的:(python,excel,开发语言)