Для различных манипуляций с таблицами в растре существуют две незаменимые функции: импорт и экспорт CSV. И при использовании этих функции появляются окна, в которых можно задать различные настройки
Но когда импорт или экспорт CSV делается один-два раза за сессию, то можно даже и потерпеть, и задать все настройки, а если нужно это делать постоянно, допустим, с редактированием данных в двух открытых файлах? Тогда без буфера обмена тут не обойтись…
Пример работы
Откроем таблицу узлов и выделим пару ячеек в разных строчках
Правой кнопкой вызываем контекстное меню — Макросы — Скопировать в буфер
Теперь откроем эксель и в новом листе вставим в ячейку A1 содержимое буфера обмена (ctrl+v), получим следующее
При копировании из растра в буфер обмена записались все значения столбцов соответствующих строк с выделенными ячейками. А если нам нужны не все столбцы, а только избранные?
Забьем в ексель названия нужных нам столбцов, каждый в отдельный столбец
Копируем (ctrl+C) в буфер обмена эту строку. Теперь опять копируем в буфер с помощью Контекстного меню — Макросы — Копировать в буфер и вставляем все в эксель
Теперь уже при копировании в буфер обмена записались значения тех столбцов, которые были записаны и сохранены в буфер до копирования из растра.
Отлично, теперь попробуем вставить данные из буфера обмена в растр.
Подготовим данные в екселе
Копируем и переходим в Rastr3, на любом месте вызываем контекстное меню — Макросы — Вставить
и видим вот такое окно
По части вставки все аналгочно функции импорт CSV: выбирается номер команды, и дальше происходит вставка. Единственное, нужно всегда обращать внимание, какой режим вставки включен в настройках макроса: с заголовками или без.
Результат следующий
Установка
Так как этот макрос контекстный, то и привязывать его надо к каждой таблице отдельно. Разберем процесс отдельной установки.
Копируем файлы CopyToClipboard.rbs и PasteFromClipboard.rbs в Мои Документы — Rastrwin3 — contextmacro
Открываем Файлы — Настройки программы — Настройки — Контекстные макросы (context)
В открывшейся таблице создаем новую строчку, в которой пишем имя таблицы, где хотим отображать (название формы), название макроса, который вызывается при нажатии на меню, название самого меню, и доп. строку для передачи ссылки на таблицу, из которой запускается макрос (очень важный параметр)
После всех махинаций с настройками контекстных макросов нужно обязательно сохранить шаблон context.form
Для всех, кому лень возится с настройками, есть макрос установки setup_Clipboardmacro.rbs. Нужно открыть Расчеты — Макро — Открыть и выбрать этот макрос, отметить в какие таблицы установить нужно и после работы макроса сохранить шаблон context.form
Всем удачной работы…
Ссылки для скачивания
Обновление 10.08.2014
(прочитать можно тут)
CopyToClipboard.zip (не забыть разархивировать!)
Рад, что все разрешилось
Спасибо! Ваш ответ мне помог в решении проблемы импорта данных из Excel в RastrWin3.
В макросе при вставке из буфера используется стандартная (встроенная) функция импорт csv, поэтому посмотрите, как импортирует сам rastr3 csv файл. Еще замечено, что лучше перед импортом больших данных закрывать форму и заново открывать.
Здравствуйте! Спасибо за проделанную работу по созданию макроса. Макрос судя по описанию полезный, у меня проблема с использованием этого макроса на практике. Которая заключается в следующем: при копировании информации по нагрузкам узлов (порядка 700 узлов) с помощью макроса из Excel в RastrWin3 процесс переноса информации занимает порядка 40 минут. С чем это связано?
Спасибо за отзыв
Если у вас структура файла не меняется и требуется записывать определенные величины в заранее определенные ячейки, то вам поможет динамическая связка Rastr-Excel через ДРВ. Почитать об этом можно в справке к программе
Здравствуйте. Спасибо автору за столь полезный макрос. Но хотел узнать, можно ли заставить Rastr считывать данные из Excel. Скажем, есть файл Excel с постоянной структурой, в ячейках которого внесены данные по нагрузкам, топологии, генерации. Можно ли написать такой макрос, в котором будет конкретно прописано: нагрузка N-ого узла таблицы Rastr равна значению в K-той ячейке файла Excel. Конечно, для подобных целей можно использовать данный макрос. Но хотелось бы как-нибудь автоматизировать процесс, т.е. подготовить файл Excel со всеми данными (нагрузками, топологией, генерацией)и «скормить» его Rastr’у. Буду признателен за любую помощь, совет, пример (самый идеальный вариант). Заранее благодарю.