自动将电子邮件 Excel 文件解析到 SQL 数据库

Temp mail SuperHeros
自动将电子邮件 Excel 文件解析到 SQL 数据库
自动将电子邮件 Excel 文件解析到 SQL 数据库

简化您的数据工作流程

每天,手动管理从电子邮件附件到 SQL 服务器的数据的任务可能是乏味且耗时的。这包括接收包含 Excel 文件的电子邮件,将其保存到指定文件夹,通过删除第一列来操作数据,然后将其导入数据库。

为了提高效率并降低错误风险,自动化该过程是一个实用的解决方案。通过利用 SSIS(SQL Server 集成服务)或 Microsoft Power Automate 等工具,您可以设置一个自动处理这些任务的系统,从而节省每天早上的宝贵时间。

命令 描述
ImapClient 启动与 IMAP 服务器的连接以访问和管理电子邮件。
SearchCondition.Unseen() 过滤尚未标记为已读的电子邮件,仅对处理新数据有用。
GetMessage(uid) 检索由其唯一 ID 标识的电子邮件。
File.Create() 在指定路径创建或覆盖文件,此处用于在本地保存附件。
app.LoadPackage() 从文件系统加载 SSIS 包以供执行。
pkg.Execute() 执行加载的 SSIS 包,该包可以执行数据转换和加载等任务。
Save email attachments Power Automate 操作将电子邮件中的附件存储到指定的 OneDrive 文件夹中。
Run script 执行 Excel Online 脚本以修改 Excel 文件,例如删除列。
Insert row Power Automate 中的 SQL Server 操作将数据直接插入 SQL 数据库。

脚本分解和工作流程说明

提供的脚本演示了涉及电子邮件附件和 SQL 数据库管理的日常任务的自动化。第一个脚本使用 SSIS,从 ImapClient 命令建立与电子邮件服务器的连接。这对于自动检索电子邮件至关重要。连接后,它使用 SearchCondition.Unseen() 过滤未读电子邮件,确保每天仅处理新附件。然后该脚本使用 GetMessage(uid) 根据其唯一标识符获取这些电子邮件。

检索电子邮件后,该脚本重点使用以下命令在本地保存附件 File.Create(),这对于安全有效地处理文件操作至关重要。 SSIS 包,加载了 app.LoadPackage(),使用以下命令执行操作并将数据导入到 SQL 数据库中 pkg.Execute()。相比之下,Power Automate 脚本可自动执行类似的任务,但在基于云的环境中,使用以下操作: Save email attachments 将文件移动到 OneDrive,以及 Run script 在 Excel Online 中在数据库插入之前预处理数据。

自动将 Excel 文件从电子邮件集成到 SQL

SQL Server 集成服务 (SSIS) 脚本

// Step 1: Define the connection to the mail server
string mailServer = "imap.yourmail.com";
string email = "your-email@example.com";
string password = "yourpassword";
// Step 2: Connect and fetch emails
using (ImapClient client = new ImapClient(mailServer, email, password, AuthMethod.Login, 993, true))
{
    IEnumerable<uint> uids = client.Search(SearchCondition.Unseen());
    foreach (uint uid in uids)
    {
        var message = client.GetMessage(uid);
        // Process each attachment
        foreach (var attachment in message.Attachments)
        {
            // Save the Excel file locally
            using (var fileStream = File.Create(@"C:\temp\" + attachment.Name))
            {
                attachment.ContentStream.CopyTo(fileStream);
            }
            // Run the SSIS package to process the file
            DtsRuntime.Application app = new DtsRuntime.Application();
            Package pkg = app.LoadPackage(@"C:\SSIS\ProcessExcel.dtsx", null);
            pkg.Execute();
        }
    }
}

通过 Power Automate 从 Excel 到 SQL 自动化

电源自动化流程说明

// Step 1: Trigger - When a new email arrives
When a new email is received (Subject Filter: 'Daily Excel Report')
// Step 2: Action - Save attachments to OneDrive
Save email attachments to: 'OneDrive/EmailAttachments'
// Step 3: Action - Remove first column from Excel
Use Excel Online (Business) action: 'Run script' (Script to delete the first column)
// Step 4: Action - Insert data into SQL database
Use SQL Server action: 'Insert row' (Set connection and target database)
// Step 5: Condition - If success, send confirmation email
If action is successful, send email: 'Data upload complete'
// Step 6: Error Handling - If failure, send error notification
If error occurs, send email: 'Error in data processing'

通过自动化增强数据管理

进一步探索自动化领域,特别是 SSIS 和 Power Automate,揭示了它们对提高效率和减少数据处理中的手动工作量的重大影响。这些工具不仅可以自动执行重复任务,还引入了强大的错误处理和调度功能,这对于维护数据完整性和及时更新至关重要。实施此类自动化工作流程可以显着降低人为错误的可能性,提高数据处理速度,并允许人员专注于更多分析任务。

这种战略自动化对于依赖及时数据更新的行业(例如金融或营销)尤其具有变革性。例如,自动化系统可以设置为在传入数据未通过某些质量检查时触发警报,从而确保决策者始终能够获得可靠且准确的信息。这种级别的自动化不仅简化了操作,还增强了组织内的整体数据治理框架。

有关电子邮件到数据库自动化的常见问题

  1. 什么是SSIS?
  2. SSIS(SQL Server Integration Services)是一个用于构建企业级数据集成和数据转换解决方案的平台。
  3. 如何使用 SSIS 实现流程自动化?
  4. SSIS 可以自动化将数据从各种来源移动和转换到数据库和其他目的地的过程,具有以下功能: Data Flow, Control Flow, 和 Error Handling
  5. 什么是电力自动化?
  6. Power Automate 是 Microsoft 提供的一项服务,可帮助您在喜爱的应用和服务之间创建自动化工作流程,以同步文件、获取通知、收集数据等。
  7. Power Automate 如何处理电子邮件附件?
  8. Power Automate 可以自动将电子邮件中的附件保存到 OneDrive 或 SharePoint 等服务上的指定文件夹中 Save email attachments 行动。
  9. SSIS 可以处理数据传输期间的错误吗?
  10. 是的,SSIS 包含强大的错误处理机制,可以管理数据传输问题,允许重试或将错误记录重定向到单独的文件以供审查。

总结自动化之旅

实现日常电子邮件到数据库任务的自动化为企业提供了变革潜力,尤其是那些处理大量数据的企业。通过使用 SSIS 和 Power Automate,公司可以消除手动数据输入、降低错误风险并确保及时更新。这种自动化提高了运营效率,使员工能够专注于更具战略性的任务,从而最大限度地提高生产力和数据准确性。