На главную страницу
Русский English
 


Поддержка
Форум
Техподдержка
Закрытый разделПерсональная

Авторизация

Запомнить меня на этом компьютере
  Забыли свой пароль?
  Регистрация



Поиск по сайту


Подписка

Изменение параметров

Hits 66985968
4555
Hosts 3541126
710
Visitors 53213327
3158

26


Главная / Поддержка / Форумы / Макро

Форум «Макро»

Версия для печати Версия для печати

Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация


Тема: «Связь с Excel » в форуме: Макро   Просмотров: 11297
 
Иван Трофимович
Постоянный посетитель
 
Всего сообщений: 76
Дата регистрации: 12.04.2008
Создано: 12.04.2008 23:21:21
 
 
в екселе производить расчеты параметров схемы мне удобнее. тот же каталог марок проводов и трансформаторов я для своей задачи организовать могу. Вопрос как проще всего данные из Excel занести в растр ?
import CSV ? - кликов мышкой немало, после сохранения диапазона екселевского в тхт приходится разделители разрядов и ячеек заменять (с запятой на точку и с пробела на ; ) а уже сам ввод CSV то еще можно автоматизировать как я понимаю.
В 2.22 добавлено
Цитата
3) Добавлен динамический обмен данных с MS Excell

вот что это значит и как это использовать ? можно ли екселевскую таблицу использовать "как связанную" ?
 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1046
Дата регистрации: 23.04.2007
Создано: 14.04.2008 18:45:42
 
 
Если нужно импортировать csv, то сначала неплохо бы поставить разделителем разрядов в windows точку ("Языки и стандарты" в панели управления). В самом Excel можно выводить файлы в формате MS-DOS (если текста нет), там разделитель как и положено в CSV-точка с запятой.

Если нужно автоматизировать ввод csv - есть метод ReadCSV, описанный в документации. Можно заняться сразу высшим пилотажем - читать прямо из книги Excel. Примеры есть в макростудии (там правда только запись, но она мало отличается от чтения).

Динамический обмен с Экселем - это механизм самого Экселя, который используется Растр. Этот механизм работает только из Растра в Эксель. Почитать можно про него в хелпе в разделе "Динмамический обмен с MS Excel". То есть скорее всего (хотя и не понятно что называется "свяазанной таблицей") этот механизм Вам не подойдет. Он нужен для построения всяких красивых отчетов и пр.
 
Профиль
Наверх
Иван Трофимович
Постоянный посетитель
 
Всего сообщений: 76
Дата регистрации: 12.04.2008
Создано: 14.04.2008 20:05:46
 
 
Цитата
То есть скорее всего (хотя и не понятно что называется "свяазанной таблицей") этот механизм Вам не подойдет

Связанная таблица что такое ? В Ворде Правка - специальная вставка - связать. таким образом можно таблицу вставить в ворд которая будет меняться вместе с основной таблицей расчетов в екселе.

Попробовал чтение из екселя сделать.
Код
Sub ReadCSV (file,table,param,sel,div­)
Set tnode=Rastr.Tables(table)­
tnode.SetSel(sel)
tnode.WriteCSV 0,file,param,div
End Sub

' вывод в файл a1.csv данных из таблицы Узлы (node) ,
' список выводимых параметров ny,pn,qn (номер узла, активная и реактивная
' нагрузка),выборка по первому району (na=1) разделитель - запятая
ReadCSV "lab.csv","node","ny,pn,q­n","na=1",";"


lab.csv екселевский файл. разделители действительно точка с запятой. разделитель разрядов поменял. если блокнотом открывать - текст такой вот.
Код
1;25;17.45
2;25;17.45
3;25;17.45

результатов после запуска никаких Печально данные не импортируются. что я упустил ? или пример я не тот взял ?
 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1046
Дата регистрации: 23.04.2007
Создано: 15.04.2008 12:10:19
 
 
Так Вы пишете или читаете в файл ? У Вас функция называется ReadCSV, однако при этом внутри нее вызывается WriteCSV. Зачем Вам выборка по району, если Вы не читаете поле с номером района ?

Если вы хотите прочитать файл, то воспользуйтесь такой, примерно, конструкцией:
Set spNode = rastr.Tables("node")
spNode.ReadCsv CSV_REPL,"lab.csv","ny,pn­,qn",";",""

Метод этот читает файл lab.csv (укажите к нему полный путь) в режиме замены данных (CSV_REPL) в таблицу node, при этом предполагается, что в lab.csv поля введены в порядке ny,pn,qn и разделителем является точка с запятой. Параметры по-умолчанию не задаются (""). Вот если там написать "na=1", то все прочитанные узлы припишутся к району 1.

А связанных таблиц (которые правильно называются внедренные) Rastr не поддерживает. У него свои таблицы есть.
 
Профиль
Наверх
Иван Трофимович
Постоянный посетитель
 
Всего сообщений: 76
Дата регистрации: 12.04.2008
Создано: 15.04.2008 12:44:24
 
 
Цитата
А связанных таблиц (которые правильно называются внедренные) Rastr не поддерживает

тут вы неправы. связанные и внедренные таблицы (объекты) это в Word разные вещи. после внедрения таблица становится частью документа и с таблицей екселя не связана уже никак. я же хочу именно связанную таблицу т.е работать в екселе, а в другом приложении изменения видеть по запросу обновления.

за пример спасибо. макрос я действительно взял алогичный. только взял я его из станд. примеров, потому и не вчитывался Печально
RastrWin\macro\чтение из CSV.rbs
поправьте при случае что ли...

Цитата
Можно заняться сразу высшим пилотажем - читать прямо из книги Excel. Примеры есть в макростудии (там правда только запись, но она мало отличается от чтения).

Вот этот пример крутить я так понимаю ?
http://www.rastrwin.ru/ra­str/macro/voltage.php


 
Профиль
Наверх
Евгений Машалов
Администратор

 
Всего сообщений: 1046
Дата регистрации: 23.04.2007
Создано: 15.04.2008 19:37:49
 
 
С технической точки зрения оные таблицы отличаются только способом активации, а так они обе - OLE Embedded.

В RastrWin макроса "Чтение из csv" нету. Есть "Запись в csv".

Крутить этот пример. На regimov.net кто-то активно писал макросы, которые из Экселя что-то читали. Есть в принципе куча готовых подобных макросов, но они есть только в Bars/Lincor и используются в СО.
 
Профиль
Наверх



Читают тему
гостей: 1, пользователей: 0, из них скрытых: 0


Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация







Программный комплекс «RasrWin»
Программный комплекс «RastrWin»
© «RastrWin», 1988-2019