Кто-нибудь знает, как я могу открыть файл egp SAS EG 7.1 с помощью Excel VBA? Любая помощь приветствуется.
Откройте файл SAS Enterprise Guide 7.1 egp с помощью Excel VBA
Ответы (2)
Гораздо проще иметь дело с C#. Я должен не согласиться с Джо здесь, но я не думаю, что какая-либо часть VBA является .NET: это старый код COM.
Позвольте мне рассказать, как обращаться:
- Переименуйте файл EGP в расширение .zip. Это позволит вам взглянуть на него, чтобы понять структуру.
- Используйте .NET Core (последняя версия 2.2) и Visual Studio Code (бесплатно). Core позволит вам запускать его в любой системе и является направлением MS.
- Посмотрите, как читать 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;
}
- Проанализируйте его, как только он будет в текстовом формате, используя RegEx.
Для Enterprise Guide можно использовать скрипты с использованием .Net, что хорошо, поскольку VBA также по большей части использует синтаксис, аналогичный .Net, хотя на самом деле это не .Net. Вам может быть проще использовать VB.Net или Powershell, чем VBA, но принцип должен быть примерно таким же, если вы знаете, как вызывать .Net из Excel/VBA (см. этот вопрос/ответ для начала). (Я настоятельно рекомендую Powershell, так как он прост в освоении и очень подходит для такого рода вещей.)
Вы можете быстро начать работу с руководства Криса Хемедингера, хоть это и довольно старо (думаю, это 4.3), но понятия и названия должны быть, по крайней мере (в основном), теми же.
Вы также можете запланировать задачу внутри Enterprise Guide, используя планировщик Windows (Файл-> Расписание [projname]). Что он делает, когда вы говорите ему сделать это, так это создает файл .VBS (базовый визуальный скрипт), который затем вы можете открыть, чтобы увидеть, как он работает, и каннибализировать код для ваших собственных целей.