You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python读取并解析Lotus Notes文档内的表格数据

问题解决步骤

第二行win32com.client.Dispatch('Lotus.NotesSession')报错通常由以下几种原因导致,按顺序排查即可:

  • Python和Notes客户端位数不匹配
    Lotus Notes的COM组件默认仅支持32位运行环境,如果你安装的是64位版本的Python,就会出现调用失败的问题。卸载当前Python,安装对应32位版本即可解决该问题。
  • COM组件未正确注册
    先确认你已经完整安装了Lotus/IBM/HCL Notes客户端,并且已经成功登录过至少一次。之后以管理员身份打开命令提示符,进入Notes的安装目录(默认路径为C:\Program Files (x86)\IBM\Notes),执行以下命令完成组件注册:
    regsvr32 nlsxbe.dll
    
    弹出注册成功的提示后,再重新运行代码。
  • ProgID不匹配
    如果你用的是新版HCL Notes,COM组件的ID已经变更,将第二行的组件ID改为Notes.NotesSession即可:
    session = win32com.client.Dispatch('Notes.NotesSession')
    

其他注意事项

  • session.Initialize()传入的参数是你Notes客户端的登录密码,如果你的客户端启动时不需要手动输入密码,直接传入空字符串即可。
  • GetDatabase的第二个参数需要传入nsf文件的完整绝对路径,或者确保nsf文件存放在Notes客户端的默认数据目录下,否则会找不到数据库文件。

修正后可参考的代码

import win32com.client
# 适配新版Notes可以改成Notes.NotesSession
session = win32com.client.Dispatch('Lotus.NotesSession')
# 没有密码就传空字符串
session.Initialize('你的Notes客户端密码')
# 填nsf文件的完整绝对路径
db = session.GetDatabase('', r'C:\你的数据库完整路径\dddddddd.nsf')
view = db.GetView(r'vvvvvvvv')
doc = view.GetFirstDocument()
print(doc.GetFirstItem('iiiiii').Values)

内容的提问来源于stack exchange,提问作者ImFabien75

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:06:03