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

如何从Databricks通过Outlook以TXT格式共享表格数据?

解决方案

一、直接从数据源生成结构化TXT并自动发送

如果表格数据来自数据库、Excel或CSV,完全可以跳过dbx环节,用脚本直接生成规范TXT后自动发邮件,扩展性和效率拉满:

  • Python示例(适配Excel/CSV数据源):
    用pandas读取表格,转成分隔符或固定列宽格式的TXT,再通过SMTP发送:
    import pandas as pd
    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    
    # 读取表格数据
    df = pd.read_excel("your_table.xlsx")
    # 生成|分隔的结构化TXT(可自定义分隔符或格式)
    txt_content = df.to_csv(sep="|", index=False)
    
    # 构建邮件
    msg = MIMEMultipart()
    msg["From"] = "your_email@domain.com"
    msg["To"] = "recipient@domain.com"
    msg["Subject"] = "表格数据(TXT格式)"
    msg.attach(MIMEText(txt_content, "plain"))
    
    # 用Outlook 365 SMTP发送
    with smtplib.SMTP("smtp.office365.com", 587) as server:
        server.starttls()
        server.login("your_email@domain.com", "your_app_password")
        server.send_message(msg)
    

二、提取DBX文件中的表格数据转TXT

如果必须从dbx文件提取,可用专门解析库提取表格内容后转TXT:

  • Python示例(用dbxreader库):
    先安装库pip install dbxreader,再解析dbx中的邮件表格(假设是HTML格式):
    from dbxreader import DBXReader
    from bs4 import BeautifulSoup
    import pandas as pd
    
    # 读取dbx文件
    reader = DBXReader("your_file.dbx")
    for message in reader.messages:
        # 解析邮件HTML中的表格
        soup = BeautifulSoup(message.body, "html.parser")
        tables = soup.find_all("table")
        if tables:
            # 转成DataFrame后生成TXT
            df = pd.read_html(str(tables[0]))[0]
            txt_content = df.to_string(index=False)
            # 保存或直接发送TXT
            with open(f"table_{message.id}.txt", "w", encoding="utf-8") as f:
                f.write(txt_content)
    
    要是dbx里的表格是纯文本格式,直接提取对应段落处理即可,不用HTML解析。

三、Outlook 365自动化导出TXT

用PowerShell直接操作Outlook,筛选目标邮件后导出表格为TXT并发送:

  • PowerShell示例:
    $outlook = New-Object -ComObject Outlook.Application
    $namespace = $outlook.GetNamespace("MAPI")
    $inbox = $namespace.GetDefaultFolder(6) # 6代表收件箱
    
    foreach ($mail in $inbox.Items) {
        if ($mail.Subject -match "表格数据") { # 筛选目标邮件
            # 提取HTML表格内容
            $html = $mail.HTMLBody
            $table = [regex]::Match($html, "<table.*?</table>", [System.Text.RegularExpressions.RegexOptions]::Singleline).Value
            if ($table) {
                # 先安装模块:Install-Module -Name HtmlTableConverter
                $txtContent = ConvertFrom-HtmlTable -Html $table | ConvertTo-Csv -Delimiter "|" -NoTypeInformation
                $txtContent | Out-File -FilePath "C:\output\table.txt" -Encoding UTF8
                
                # 自动发送带TXT附件的邮件
                $newMail = $outlook.CreateItem(0)
                $newMail.Subject = "表格数据TXT版"
                $newMail.To = "recipient@domain.com"
                $newMail.Attachments.Add("C:\output\table.txt")
                $newMail.Send()
            }
        }
    }
    

四、替代PST转换的轻量方案

如果需要处理邮件容器但不想用PST,还有两个选项:

  • 用Outlook自带的邮件导出功能,把邮件存为MSG文件,再用Python的msg-extractor库解析MSG中的表格转TXT。
  • 用本地运行的第三方工具(比如DBX Viewer)打开dbx,批量导出邮件中的表格为TXT,适合非编码场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 04:52:22