Экспорт данных из Intouch в Excel

Я программирую SCADA с помощью Intouch R2 SP1. В этой SCADA я должен сделать несколько отчетов в Excel. Отчет просто записывает 10 значений в определенные ячейки. Дело в том, что код, который я использую, работает с Office 2010, версия которого установлена ​​на моем компьютере, но когда я установил SCADA на новый компьютер, мы купили лицензию на Office 2016. Когда я пытаюсь сгенерировать отчет с этим компьютером делает все правильно, кроме записи в ячейки.

Итак, мои вопросы таковы: кто-нибудь знает, как экспортировать эти данные в электронную таблицу Excel, используя vb.net Intouch Archestra Graphics? Если нет, можно ли экспортировать данные в Excel из SQL Server с помощью SQL-запроса?

Код, который я использую, приведен ниже, здесь вы можете видеть, что я копирую файл Excel в новое место, изменяя его имя, и открываю новый файл Excel. После этого я использую функцию WWPoke() для вставки нужных значений в Excel.

dim sourceDir as string;
dim destDir as string;
dim fileName as string;
dim destName as string;
dim sourceFile as string;
dim destFile as string;
dim modo as System.IO.FileMode;
dim fechaini as string;

sourceDir = "C:\MIGRA\SCADA\Acesur_Cogeneracion";
destDir = "C:\InformesAcesur";
fileName = "Informe.xls";
destName = InTouch:$Day + "" + InTouch:$Month + "" + InTouch:$Year + "_" +                     
InTouch:$Hour+ "" + InTouch:$Minute + ".xls";
sourceFile = System.IO.Path.Combine(sourceDir,fileName);
destFile = destDir + "\" + destName;

'I copy the original file to the new location
System.IO.File.Copy(sourceFile,destFile,true);

'I open the copied file
System.Diagnostics.Process.Start("excel.exe",destFile);


'I send the data to excel - THIS IS THE PART THAT'S NOT WORKING
WWPoke( "excel.exe", "Hoja1", "F10C4", FechaInicio);
WWPoke( "excel.exe", "Hoja1", "F11C4", FechaFin);
WWPoke( "excel.exe", "Hoja1", "F20C4", StringFromReal(E,2,"f"));
WWPoke( "excel.exe", "Hoja1", "F21C4", StringFromReal(Q,2,"f"));
WWPoke( "excel.exe", "Hoja1", "F22C4", StringFromReal(V,2,"f"));
WWPoke( "excel.exe", "Hoja1", "F28C4", StringFromReal(REE,2,"f"));
WWPoke( "excel.exe", "Hoja1", "F34C4", StringFromReal(FT001,2,"f"));
WWPoke( "excel.exe", "Hoja1", "F35C4", StringFromReal(FT002,2,"f"));
WWPoke( "excel.exe", "Hoja1", "F36C4", StringFromReal(FT003,2,"f"));
WWPoke( "excel.exe", "Hoja1", "F37C4", StringFromReal(FT004,2,"f"));

Спасибо!


person salonso    schedule 18.01.2018    source источник
comment
Я уже нашел проблему и решение для нее.   -  person salonso    schedule 19.01.2018
comment
Подумайте о том, чтобы написать свое решение как ответ на свой вопрос. Я знаю, что мы тоже сталкивались с этой проблемой в прошлом. Я уверен, что ты не будешь последним.   -  person Grambot    schedule 19.01.2018


Ответы (1)


Проблема в том, что функция WWPoke() не совместима с 64-битной ОС, дело было не в версии Офиса. Итак, что я сделал, так это создал файл .csv и с помощью макроса excel импортировал данные в отчет.

person salonso    schedule 22.01.2018