sql-server - Excel 从电子邮件收件箱到 SQL Server 数据库
问题描述
我必须将数据从 Excel 导入 SQL Server 数据库。
我每天都通过电子邮件获取 Excel 文件。我必须从电子邮件中取出它们并将内容放入数据库。另外,我想自动化它而不是手动进行。
我正在考虑以下想法:
从收件箱中提取电子邮件附件(使用某些工具等的自动化过程)并将其保存到
O:
驱动器中(然后从那里拉入数据库很简单)借助任何可用的工具(开源),直接从收件箱将 Excel 内容导入 SQL Server。
我希望这对我正在尝试做的事情有意义。
有人可以告诉我如何自动化吗?
谢谢,美联社
解决方案
您可以将 VBA 用于此处的所有内容。
1) 从 Outlook 下载附件。
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "C:\Users\DT168\Documents\outlook-attachments\"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub
2) 将数据从 Excel 文件加载到 SQL Server。
Sub InsertARecord()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stCon As String, stSQL As String
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset
stCon = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=JOEY"
cnt.ConnectionString = stCon
stSQL = "INSERT INTO MyTable (FieldNames)"
stSQL = stSQL & "VALUES (ActualValues)"
stSQL = stSQL & "WHERE lockStatus = 'nolock'"
cnt.Open
rst.Open stSQL, cnt, adOpenStatic, adLockReadOnly, adCmdText
If CBool(rst.State And adStateOpen) = True Then rst.Close
Set rst = Nothing
If CBool(cnt.State And adStateOpen) = True Then cnt.Close
Set cnt = Nothing
End Sub
另外,请参阅此 URL。
https://www.excel-sql-server.com/excel-sql-server-import-export-using-vba.htm#Introduction
推荐阅读
- javascript - 如何在javascript中制作递归嵌套数组?
- python - 从表中提取所有页面
- python - 是否可以在 python3 中完全使用 Monkey Patch 内置`str`
- powershell - PowerShell 中的 Switch 语句和复制粘贴采用最后一个数组输出,而不是第一个示例
- java - DatePickerCellEditor() 有什么问题?
- java - Random.nextInt 从一本书看来是错误的
- express - Express.js - 如何为搜索过滤器调用多个参数?
- angular - 可观察检查是否正在加载?
- r - 合并从文件名添加日期信息的数据框
- html - 消除
...
带有 shell 命令的块