网站首页 > 技术文章 正文
Outlook全球通讯簿还在用吗?每次找同事联系方式都要转圈半分钟?今天教你用Python将通讯簿下载到本地Excel文件中!
核心功能
自动导出10W+联系人到Excel
保留部门/电话/邮箱等关键字段
支持Win/Mac双平台运行
内置异常处理和进度显示
完整代码(复制即用)
import win32com.client
import openpyxl
from openpyxl.styles import Font
import os
class OutlookContactsExporter:
def __init__(self):
# 文件保存路径(建议修改为你的实际路径)
self.excel_file = "global_contacts.xlsx"
self.init_excel()
def init_excel(self):
"""创建带格式的Excel模板"""
if not os.path.exists(self.excel_file):
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "全球通讯簿"
headers = ["名称", "职务", "商务电话", "移动电话", "位置",
"部门", "电子邮件", "单位", "别名"]
ws.append(headers)
# 设置标题加粗
for col in range(1, len(headers)+1):
ws.cell(row=1, column=col).font = Font(bold=True)
wb.save(self.excel_file)
def export_contacts(self):
"""核心导出逻辑"""
try:
outlook = win32com.client.Dispatch("Outlook.Application")
gal = outlook.GetNamespace("MAPI").GetGlobalAddressList()
wb = openpyxl.load_workbook(self.excel_file)
ws = wb.active
print(f"开始导出,共 {gal.AddressEntries.Count} 条记录...")
for i, entry in enumerate(gal.AddressEntries):
user = entry.GetExchangeUser()
if user:
ws.append([
user.Name,
getattr(user, 'JobTitle', ''),
getattr(user, 'BusinessTelephoneNumber', ''),
getattr(user, 'MobileTelephoneNumber', ''),
getattr(user, 'OfficeLocation', ''),
getattr(user, 'Department', ''),
getattr(user, 'PrimarySmtpAddress', ''),
getattr(user, 'CompanyName', ''),
getattr(entry, 'Alias', '')
])
if i % 100 == 0:
print(f"已处理 {i} 条...")
wb.save(self.excel_file)
print(f"导出完成!文件保存至:{os.path.abspath(self.excel_file)}")
if __name__ == "__main__":
OutlookContactsExporter().export_contacts()
input("按回车键退出...")
使用说明
1 安装依赖:pip install pywin32 openpyxl
2 用Outlook登录企业账号
3 修改代码中的保存路径(第7行)
4 右键「以管理员身份运行」
注意事项
o 首次运行会触发Outlook安全警告,需点击允许
o 导出的Excel文件建议加密存储。
喜欢请点击【关注】!日常分享工作中新解决的问题!嘿嘿!
#Python办公自动化 #Outlook技巧 #职场效率 #编程干货
猜你喜欢
- 2025-05-03 自动创建 Python 的 requirements.txt 文件
- 2025-05-03 Windows系统下安装与配置Python开发环境
- 2025-05-03 单线程VS多线程批量下载文件(多线程下载和单线程下载)
- 2025-05-03 「从零开始Python爬虫」1.8.2 Scrapy的安装
- 2025-05-03 Python用三行代码下载B站视频(python b站视频下载)
- 2025-05-03 Python 使用Paramiko 上传下载远程服务器的文件或文件夹
- 2025-05-03 Python核对遥感影像批量下载情况的方法
- 2025-05-03 写了一个下载图片和视频的python小工具
- 2025-05-03 1分钟搞定!Python超速工具uv换国内镜像,下载速度飙升10倍
- 2025-05-03 解放双手!Python 自动化下载邮件附件,可自定义时间段
- 263℃Python短文,Python中的嵌套条件语句(六)
- 262℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 256℃Python实现字符串小写转大写并写入文件
- 255℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 114℃原来2025是完美的平方年,一起探索六种平方的算吧
- 96℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 87℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)