如何使用SSIS包将密码加密为Excel?有可能吗?

时间:2019-04-23 05:42:45

标签: ssis script-task

如何使用SSIS包将密码加密为Excel?

我认为,我们可以使用脚本任务来实现这一目标。我通过使用Spire.xls nugget包尝试了以下代码,但相应的nugget dll参考未添加到解决方案中。

脚本任务代码:

using Spire.Xls;

namespace ProtectExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            //Load Workbook
            Workbook book = new Workbook();
         book.LoadFromFile(@"C:\Test\Test.xlsx");
            //Protect Workbook
            book.Protect("vinay-123");
            //Save and Launch
            book.SaveToFile(@"C:\Test\ProtectExcel.xlsx", ExcelVersion.Version2010);
            //System.Diagnostics.Process.Start("ProtectExcel.xlsx");
        }
    }
}

我在c#控制台应用程序中尝试了相同的代码,但效果很好,但在SSIS脚本任务中却无法正常工作。

有人可以帮助我解决此问题或其他方法吗?

脚本任务代码:

using Spire.Xls;

namespace ProtectExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            //Load Workbook
            Workbook book = new Workbook();
         book.LoadFromFile(@"C:\Test\Test.xlsx");
            //Protect Workbook
            book.Protect("vinay-123");
            //Save and Launch
            book.SaveToFile(@"C:\Test\ProtectExcel.xlsx", ExcelVersion.Version2010);
            //System.Diagnostics.Process.Start("ProtectExcel.xlsx");
        }
    }
}

Excel应该使用SSIS受密码保护。

1 个答案:

答案 0 :(得分:0)

在SSIS中,必须将dll部署到GAC以引用脚本任务代码。请参阅post on deploying to GAC for SSIS script task reference。有关避免部署到GAC的解决方法,请参阅here

我建议您从控制台应用程序中生成exe并使用Execute Process任务调用具有参数的控制台应用程序,如here

所述