Запуск макросов Excel непосредственно из ArcView

0 голосов
спросил 29 Апр, 09 от Lord (3,920 баллов) в категории Программные продукты Esri
Я новичок на форуме. Прочитал, что была проблема с запуском макросов Excel. Если интересно еще, могу опубликовать пару строчек текста.
Работает великолепно.

      systemClient.Execute("[Run(""addRow"")]")

      systemClient.Execute("[Run(""FormatSved"")]")

в приведенных примерах addRow и FormatSved суть макросы

Если требуется передать параметр в макрос, то не мудрствуя лукаво
в произвольную ячейку пишем нужное значение параметров (несколько ячеек, несколько параметров). Потом макросом эти ячейки читаем и получаем значения параметра (ов)

14 Ответы

0 голосов
ответил 29 Сен, 09 от TDenis (42,620 баллов)
Я тут уже как-то спрашивал, тишина. Непонятно, как с ним связываться по DDE, он ни на что не откликается.
Вариант - перейти на ArcGIS и при этом воспользоваться хорошим сторонним генератором отчетов, который сначала строит отчет, а уж затем может экспортировать его или в rtf, или в xls, или в pdf, или в картинку, при этом не важно установлены ли вообще MS Word или OO.
Сам не пробовал, но думаю вместо ArcGIS можно написать и подключить к ArcView 3.X библиотеку на .Net, которая будет строить такой отчет.
Может быть такой вариант рассмотреть?
Инвестиции в изучение и приобретение генератора отчётов окупятся лёгкостью их построения и изменения. Собственно, даже конечных пользователей можно научить модифицировать отчёт.
Всяко лучше, чем через DDE по ячейкам скакать. Да и быстрее.
0 голосов
ответил 29 Сен, 09 от TDenis (42,620 баллов)
Но для обратной задачи (документ OO -> ArcView) это, конечно, не вариант.
0 голосов
ответил 29 Сен, 09 от Lord (3,920 баллов)
Спасибо за ответ. В хелпе ОО написано, что он не поддерживает DDE.
Вот это святая правда.

А вопрос возник, а не подумать ли перейти на ОО.
Но пока не горит.
0 голосов
ответил 05 Авг, 10 от Lord (3,920 баллов)
Хочу сделать несколько уточнений. Вижу, что тема интересна многим.

1. При чтении из ячейки Excel, возвращается символьная строка, из которой необходимо убрать последние 2 символа, как в примере
sRow1=sstem1Client.Request("R9C13")
sRow=sRow1.left(sRow1.count-2).asNumber

в данном случае из ячейки читается число

2. При записи в ячейку длина строки не может превышать 255 символов. Если строка длиннее, то запись в ячейку не производится без каких-либо системмных сообщений.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...