导出受密码保护的xlsx文件,然后通过电子邮件发送

时间:2019-08-16 08:05:34

标签: sql-server powershell ssis etl jobs

目前,我正在使用SSIS包,该包正在执行存储过程并使用查询结果生成.XLSX文件。

我需要做的是加密.xlsx文件。可以通过在使用SSIS程序包填充文件后对文件进行加密,也可以通过预先在.xlsx文件上输入密码并将其打开(读取受密码保护的文件)并向其中导出数据来完成该操作。

*我知道受密码保护的文件不是超级安全,但是在这种情况下,我只需要对其进行密码保护即可合规。

我正在研究SSIS,我相信我可以使用可以使用SSIS的“执行过程任务”工具运行的Powershell脚本来完成此任务,如果我对此有误,请纠正我。

更新:我正在使用“执行流程任务” PowerShell脚本(script.ps1)执行:

Set objExcel = CreateObject(“Excel.Application”)

objExcel.Visible = True

objExcel.DisplayAlerts = FALSE

Set objWorkbook = objExcel.Workbooks.Add

Set objWorksheet = objWorkbook.Worksheets(1)


objWorksheet.Cells(1, 1).Value = Now

objWorkbook.SaveAs “C:\Scripts\Test.xlsx”,,”Password123”

objExcel.Quit

但是,在这里我不知道如何指向使用该软件包创建的Excel文件以对其进行密码保护,我是否丢失了某些内容?

这是我的包装设计在SSIS中的外观: enter image description here

这是“执行流程任务”的详细信息,称为“锁定生成的excel文件”:

enter image description here

*这来自来源:https://techcommunity.microsoft.com/t5/SQL-Server-Integration-Services/Run-PowerShell-scripts-in-SSIS/ba-p/388340

1 个答案:

答案 0 :(得分:1)

您可以创建encrypted Excel spreadsheets in Powershell

您将按照

的代码创建一个计划任务来触发Powershell脚本
interface ThingWithName extends Record<string, any> {
    name: string
}

function greet(thing: ThingWithName) {
    return `hello, ${thing.name}`
}

greet({name: ''}) // fine
greet({name: '', age: 27}) // also fine