Откройте файл egp SAS Enterprise Guide 7.1 с помощью Excel VBA - PullRequest
0 голосов
/ 28 января 2019

Кто-нибудь знает, как я могу открыть файл SAS EG 7.1 egp с помощью Excel VBA?Любая помощь будет высоко ценится.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

С C # гораздо проще иметь дело.Я должен не согласиться с Джо здесь, но я не думаю, что какая-либо часть VBA является .NET: это старый код COM.

Позвольте мне рассказать, как обрабатывать:

  1. Переименуйте файл EGP в расширение .zip.Это позволит вам взглянуть на него, чтобы понять структуру.
  2. Используйте .NET Core (последняя версия 2.2) и Visual Studio Code (бесплатно).Ядро позволит вам запустить его в любой системе, и это направление MS.
  3. Посмотрите, как читать zip-файл с использованием C #.Вот код, с которого можно начать:
       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;
        }
Разобрать его, как только он будет в текстовом формате, используя RegEx.
0 голосов
/ 28 января 2019

Enterprise Guide можно создавать с помощью сценариев с использованием .Net, к счастью, VBA также использует синтаксис, по большей части аналогичный .Net, хотя на самом деле это не .Net.Возможно, вам будет легче использовать VB.Net или Powershell, чем VBA, но принцип должен быть по крайней мере примерно таким же, если вы знаете, как вызывать .Net из Excel / VBA (см. этот вопрос / ответ для начинающих).(Я очень рекомендую Powershell, поскольку его легко освоить и он очень подходит для такого рода вещей.)

Вы можете получить быстрый старт с руководством Криса Хемедингера , хотя это довольно старо (Я думаю, что это 4.3), но понятия и имена должны быть по крайней мере (в основном) одинаковыми.

Вы также можете запланировать задачу в Enterprise Guide, используя планировщик Windows (File-> Schedule [projname]),Когда вы заставляете его делать это, он создает файл .VBS (скрипт Visual Basic), который затем можно открыть, чтобы увидеть, как он работает, и уничтожить код для ваших собственных целей.

...