使用Excel VBA打开SAS Enterprise Guide 7.1 egp文件

时间:2019-01-28 16:20:03

标签: excel vba sas enterprise-guide

有人知道我如何使用Excel VBA打开SAS EG 7.1 egp文件吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

作为C#处理要容易得多。我必须在这里不同意Joe,但我认为VBA的任何部分都不是.NET:它是旧的COM代码。

让我看看如何处理:

  1. 将EGP文件重命名为.zip扩展名。这样一来,您就可以了解它的结构了。
  2. 使用.NET Core(最新的2.2)和Visual Studio代码(免费)。 Core将允许您在任何系统上运行它,这是MS的方向。
  3. 查看如何使用C#读取zip文件。这是一些入门的代码:
       private XDocument ReadZipFile(string testFile, bool writeFile)
        {
            var xd = new XDocument();
            using (FileStream zipToOpen = new FileStream(testFile, FileMode.Open))
            {
                using (var archive = new ZipArchive(zipToOpen, ZipArchiveMode.Read))
                {
                    var entry = archive.Entries.First(x => x.Name.ToLower() == "project.xml");
                    using (var sr = new StreamReader(entry.Open(), Encoding.UTF8))
                    {
                        var xmlFile = sr.ReadToEnd();
                        if (writeFile)
                        {
                            using (var sw =
                                new StreamWriter(@"X:\Data\projects\Savian.SasWorkflowReader\Data\project.xml"))
                            {
                                sw.Write(xmlFile);
                            }
                        }
                        xd = XDocument.Parse(xmlFile);
                    }
                }
            }
            return xd;
        }
  1. 使用RegEx以文本格式对其进行解析。

答案 1 :(得分:0)

企业指南可使用.Net编写脚本,这很幸运,因为VBA实际上并不是.Net,但大多数情况下VBA也使用与.Net相似的语法。使用VB.Net或Powershell可能比使用VBA的时间更轻松,但是如果您知道如何从Excel / VBA调用.Net,则原理至少应该大致相同(入门请参见this question/answer) 。 (我强烈推荐Powershell,因为它很容易学习,非常适合这类事情。)

您可以快速入门with Chris Hemedinger's guide,尽管这已经很老了(我认为是4.3),但是概念和名称仍应至少(大部分)相同。

您还可以使用Windows计划程序在“企业指南”中计划任务(“文件”->“计划[projname]”)。当您告诉它执行此操作时,将创建一个.VBS文件(可视化基本脚本),然后可以打开该文件以查看其工作方式,并根据自己的意图对代码进行蚕食。