报错因旧版 xlrd 不支持 xlsx,应卸载旧版并安装 openpyxl 或升级 xlrd>=2.0。

这标题没有实际信息量,不是学习路径,也不是技术问题,无法指导实操。真正需要的不是“第224讲”这种编号,而是解决具体办公自动化场景中的真实卡点。
用 pandas 读 Excel 却报 xlrd.biffh.XLRDError: Excel xlsx file; not supported
这是旧版 xlrd(
- 执行
pip uninstall xlrd,彻底删掉它(pandas 1.2+ 已默认用openpyxl或xlrd2) - 确保安装了
openpyxl:pip install openpyxl(读写 xlsx 必需) - 显式指定引擎更稳妥:
df = pd.read_excel("data.xlsx", engine="openpyxl") - 如果必须兼容 .xls,改用
xlrd==1.2.0(仅此版本支持 xls+xlsx 混合读取)
批量处理 Word 文档时,python-docx 修改后中文乱码或格式错乱
根本原因不是编码问题,而是模板文档里用了非默认字体、段落样式未继承、或直接操作 run.text 破坏了原有 paragraph 结构。
- 不要用
paragraph.text = "新内容"赋值,改用paragraph.clear()+paragraph.add_run("新内容") - 中文务必设置字体:
run.font.name = "微软雅黑"
run._element.rPr.rFonts.set(qn("w:eastAsia"), "微软雅黑") - 批量替换建议用「查找-替换」逻辑,而非全文重写:遍历所有
paragraph和table.cell,匹配.text后再.clear()+.add_run()
用 smtplib 发邮件总被当垃圾邮件,或收件方看不到附件
原始 SMTP 协议不带附件语义,必须手动构造 MIME 多部分结构;而被标记为垃圾邮件,90% 是因为发信域名没配 SPF/DKIM/DMARC,或使用了免费邮箱 SMTP(如 QQ、163)直连发大量内部邮件。
立即学习“Python免费学习笔记(深入)”;
- 附件必须走
MIMEMultipart:msg = MIMEMultipart()
msg.attach(MIMEText("正文", "plain", "utf-8"))
with open("report.pdf", "rb") as f:
part = MIMEApplication(f.read(), _subtype="pdf")
part.add_header("Content-Disposition", 'attachment', filename="report.pdf")
msg.attach(part) - 发件地址必须和 SMTP 登录账号一致(例如用
xxx@company.com发信,就得用 company.com 的 SMTP 服务,不能用 Gmail 账号代发) - 内网系统发邮件,优先走企业已配置好的邮件中继(如 Exchange Web Service),别硬扛 SMTP 配置
办公自动化的难点从来不在语法,而在和真实文档格式、邮件策略、权限体系的缠斗。每次卡住,先看错误信息里有没有 openpyxl、python-docx、smtplib 这类关键词——它们才是你该查文档、翻源码、换版本的真实入口。










