• 周日. 4 月 26th, 2026

物嫩软件资讯网

软件资讯来物嫩

第39期Datawhale组队学习——基于Python的自动化办公

admin@wunen

5 月 16, 2025



前言


Datawhale第39期组队学习

来了!这次选择的是Datawhale开源学习项目——“

基于Python的自动化办公

”,学习周期为7.11-7.24,在此记录初次接触自动化办公的小白学习历程。基于教程写的比较详细,这里的记录只作为补充。



搭环境小记录

(1) conda虚拟环境:data-A

(2)为了方便在jupyterlab中同时运行.ipynb文件和md文件,额外加装notedown

step1.安装查看md的库:


pip install notedown -i https://pypi.douban.com/simple/


step2.找到文件.jupyter/jupyter_notebook_config.py并打开,没有的话就新建

step3.在文件中增加以下内容,然后保存


c.NotebookApp.contents_manager_class = 'notedown.NotedownContentsManager'


(3)报错解决:Unexpected error while saving file xxx/README.md display_priority.j2

对应Terminal写着

jinja2.exceptions.TemplateNotFound: display_priority.j2

,报错的文件在D:\Anaconda\envs\data-A\share\jupyter\nbconvert\templates\compatibility\display_priority.tpl。

打开该文件,将第二行display_priority.j2改成

base/display_priority.j2



学习路线



Task01:文件处理与邮件自动化(7.11-7.13)

·文件路径识别、处理、文件夹的操作理论学习

·文件自动化处理实践

·邮件自动发送理论学习



Task02:Python与excel(7.14-7.16)



Python+Excel自动化(OpenPyXL)

1、安装

pip3 install openpyxl -i https://pypi.douban.com/simple/


2、

读取


读取表格:

openpyxl.load_workbook()


读取WorkSheet对象工作表名称:

wb.sheetnames


读取WorkSheet对象活动表对象:

wb.active


读取WorkSheet对象活动表名称:

wb.active.title


通过Sheet3工作表名称获取工作表对象sheet:

函数方式

sheet=wb.get_sheet_by_name('Sheet3')


或者索引方式

wb['Sheet3']


读取sheet对象工作表的类型:

type(sheet)


读取sheet对象工作表中值的范围:

sheet.dimensions


读取sheet对象工作表中表的大小:

sheet.max_row、sheet.max_column 读取单元格对象:a=sheet['B1']


读取单元格对象的文本内容、行、列、坐标:

a.value、a.row、a.column、a.coordinate


判断是否为空值:

if (not) cell.value


读取多个单元格的值

方法一:对选择区域索引+遍历元组print每一个cell值

方法二:sheet.iter_rows函数 按行获取+遍历元组print每一个cell值

方法三:sheet.iter_cols函数 按列获取+遍历元组print每一个cell值

3、

写入


初始化Workbook对象:

wb = Workbook()


创建sheet表格:

sheet = wb.create_sheet(title='mysheet', index=0)


单元格赋值:

sheet['A1'].value = 'hello world'


保存表格:

wb.save(filename=root_path+'用户行为偏好_1.xlsx')


插入空行/列:

sheet.insert_cols(idx,amount=1)



sheet.insert_rows(idx,amount=1)


删除多列/行:

sheet.delete_cols(idx=5, amount=2)


移动:

sheet.move_range('B3:E16',rows=1,cols=-1)


添加求和公式:

sheet['D15'] = '=SUM(D2:D14)'


PS.对于插入公式的excel表格需要自己手动/添加代码再打开该表格,然后

ctrl s

保存下,再运行下面代码才能获取到对应公式计算后的值!!

# 使用 xlwings 打开 excel 文件然后保存 使写入的 公式生效
import xlwings as xw 
# 打开工作簿
app = xw.App(visible=False, add_book=False)
wb = app.books.open('用户行为偏好_1.xlsx')  
wb.save()
# 关闭工作簿
wb.close()
app.quit()

4、

Excel样式调整



字体样式


设置单个cell字体样式:

font = Font(name='黑体', size=20, bold=True, italic=True, color='FF0000')


设置多个 cell 的字体样式:遍历给每一个 cell 都设置上对应字体样式

cell.font = font



边框样式


设置单个cell边框样式:

边线对象:

side = Side(border_style='double', color='FF000000')


边框对象:

border = Border(left=side, right=side, top=side, bottom=side, diagonal=side, diagonalDown=True, diagonalUp=True)


设置多个 cell 的边框样式:遍历给每一个 cell 都设置上对应边框样式

cell.border = border



单元格背景色


PatternFill 模式:

pattern_fill = PatternFill(fill_type='solid',fgColor="DDDDDD")

+


cell.fill = pattern_fill


GradientFill模式:

gradient_fill = GradientFill(stop=('FFFFFF', '99ccff','000000'))

+


cell.fill = gradient_fil



设置水平居中



alignment = Alignment(horizontal='center', vertical='center')

+

cell.alignment = alignment



设置行高、列宽


行高:sheet.row_dimensions[1].height = 30

列宽:sheet.column_dimensions[‘C’].width = 24


合并、取消合并


合并:

sheet.merge_cells('A1:B2')


取消合并:

sheet.unmerge_cells('A1:B2')


5、

综合练习


(1)将一个表格拆成两个,pandas更方便!!!

方法一:openpyxl

from openpyxl import load_workbook, Workbook
wb = load_workbook(root_path+'业务联系表.xlsx')
sheet = wb.active
cust_info = {'业务经理编号': 'A', '客户名称': 'B', '客户地址': 'C', '客户方负责人': 'D', '性别': 'E', '联系电话': 'F', '备注': 'G'}
cust_info_excel = Workbook()
cust_info_sh = cust_info_excel.active
cust_info_sh.title = '客户信息'
for i in sheet[2]:
    if i.value in cust_info:
        for cell in sheet[i.coordinate[0]]:
            if cell.row == 1:
                continue
            cust_info_sh[f'{cust_info[i.value]}{cell.row-1}'].value = cell.value

方法二:pandas

import pandas as pd
data = pd.read_excel(root_path+'业务联系表.xlsx', header=1)
cust_info_pd = data[['业务经理编号', '客户名称', '客户地址', '客户方负责人', '性别', '联系电话', '备注']]
cust_info_pd.drop_duplicates(inplace=True)

(2)将两个表格合并成一个

方法:pandas

business_contact = pd.merge(manager_info_pd, cust_info_pd, on='业务经理编号')
manager_info_pd.to_excel(root_path+'业务联系表_pd.xlsx', index=None)



Python+Excel自动化(XLWings)

1、安装

pip3 install xlwings -i https://pypi.douban.com/simple/



pip install akshare -i https://pypi.douban.com/simple/



Task03:Python与word和PDF(7.17-7.19)

. python与word相关的理论知识学习

1、安装库


pip install python-docx -i https://pypi.douban.com/simple/


2、相关代码

新建文档:

doc_1 = Document()


添加标题:

doc_1.add_heading()


新增段落:

paragraph_1 = doc_1.add_paragraph()


处理文字块(如加粗):

paragraph_1.add_run().bold = True


保存文件:

doc_1.save('doc_1.docx')

. python与PDF相关的理论知识学习

1、安装库


pip install PyPDF2 -i https://pypi.douban.com/simple/



pip install pdfplumber -i https://pypi.douban.com/simple/



pip install pdf2image -i https://pypi.douban.com/simple/



pip install PyMuPDF -i https://pypi.douban.com/simple/


2、PDF批量拆分、合并

3、提取文字、提取表格内容、提取图片

4、PDF转换为图片、添加水印、文档加密与解密、页面旋转

其中,转换为图片还需要需要

安装

poppler for Windows(对于windows用户), 并且需要添加环境变量



Task04:简单的Python爬虫(7.20、7.21)


requests库的理论与实践


1、安装:

pip install requests


2、用法


re=requests.get(“https://www.baidu.com”):

发出http请求


re.status_code:

响应的HTTP状态码


re.text:

响应内容的字符串形式


rs.content:

响应内容的二进制形式


rs.encoding:

响应内容的编码


re.text:

用于文本内容的获取、下载


re.content:

用于图片、视频、音频等内容的获取、下载


HTML页面解析与提取方法


1、安装库:

pip install bs4


2、BeautifulSoup对象提取信息:


find():

返回符合条件的首个数据


find_all():

返回符合条件的所有数据


自如公寓数据抓取


36kr信息抓取与邮件发送


1、获取SMTP授权码:Mailbox Settings→Third-party Services→IMAP/SMTP :

EnabledGenerate Authorization Code

2、(作为测试)发送和接收邮箱可以都是自己的邮箱

sender=123456@qq.com

receiver=123456@qq.com

user=123456

password=授权码



Task05:Python操作钉钉自动化(7.22、7.23)

1、新建钉钉群聊(邀请2人+)

2、实战

①文本TEXT

②链接LINK

③markdown类型

④整体跳转ActionCard类型

⑤独立跳转ActionCard类型

⑥FeedCard类型



Task06:其它推荐软件和网页(7.24)

一些好用的小工具(在线网页)

1.All to ALL-格式转化(Link:

https://www.alltoall.net/



2.PDF24 Tools-PDF工具(Link:

https://tools.pdf24.org/zh/



3.I❤PDF-PDF工具(Link:

https://www.ilovepdf.com/zh-cn



4.bigjpg-图片放大工具(Link:

https://bigjpg.com/



5.magiceraser-P图去水印(Link:

https://www.magiceraser.io/



6.clippingmagic-抠图(Link:

https://zh.clippingmagic.com/

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注