На главнуюКонтактыКарта сайта
В коробке инженера
В коробке инженера
Обзоры программ, интересных блогов и программирование
Заметки о Rastrwin, Matlab
  • Twitter Colee

ПО Rastrwin: макрос импорта/экспорта таблиц с помощью буфера обмена

Автор: colee | Рубрика: Программы » Rastrwin
Суббота, 30 ноября 2013 г.
Теги: , , , , Просмотров: 8122

Для различных манипуляций с таблицами в растре существуют две незаменимые функции: импорт и экспорт CSV. И при использовании этих функции появляются окна, в которых можно задать различные настройки

Окно Импорт CSV

Но когда импорт или экспорт CSV делается один-два раза за сессию, то можно даже и потерпеть, и задать все настройки, а если нужно это делать постоянно, допустим, с редактированием данных в двух открытых файлах? Тогда без буфера обмена тут не обойтись...

Пример работы

Откроем таблицу узлов и выделим пару ячеек в разных строчках

Окно Узлы

Правой кнопкой вызываем контекстное меню - Макросы - Скопировать в буфер

Контекстное меню - Макросы

Теперь откроем эксель и в новом листе вставим в ячейку A1 содержимое буфера обмена (ctrl+v), получим следующее

Вывод в excel

При копировании из растра в буфер обмена записались все значения столбцов соответствующих строк с выделенными ячейками. А если нам нужны не все столбцы, а только избранные?

Забьем в ексель названия нужных нам столбцов, каждый в отдельный столбец

Нужные столбцы для копирования

Копируем (ctrl+C) в буфер обмена эту строку. Теперь опять копируем в буфер с помощью Контекстного меню - Макросы - Копировать в буфер и вставляем все в эксель

Вставка в эксель

Теперь уже при копировании в буфер обмена записались значения тех столбцов, которые были записаны и сохранены в буфер до копирования из растра.

Отлично, теперь попробуем вставить данные из буфера обмена в растр.

Подготовим данные в екселе

Данные для вставки в Rastr3

Копируем и переходим в Rastr3, на любом месте вызываем контекстное меню - Макросы - Вставить

Данные для вставки в Rastr3

и видим вот такое окно

Окно вставки

По части вставки все аналгочно функции импорт CSV: выбирается номер команды, и дальше происходит вставка. Единственное, нужно всегда обращать внимание, какой режим вставки включен в настройках макроса: с заголовками или без.

Результат следующий

Результат работы

Установка

Так как этот макрос контекстный, то и привязывать его надо к каждой таблице отдельно. Разберем процесс отдельной установки.

Копируем файлы CopyToClipboard.rbs и PasteFromClipboard.rbs в Мои Документы - Rastrwin3 - contextmacro

Открываем Файлы - Настройки программы - Настройки - Контекстные макросы (context)

Меню Контекстные макросы

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

Редактирование таблицы макросов

После всех махинаций с настройками контекстных макросов нужно обязательно сохранить шаблон context.form

Для всех, кому лень возится с настройками, есть макрос установки setup_Clipboardmacro.rbs. Нужно открыть Расчеты - Макро - Открыть и выбрать этот макрос, отметить в какие таблицы установить нужно и после работы макроса сохранить шаблон context.form

Опции установки

Всем удачной работы...

Ссылки для скачивания

CopyToClipboard.rbs 5

PasteFromClipboard.rbs 6

setup_Clipboardmacro.rbs 4

Обновление 10.08.2014

(прочитать можно тут)

CopyToClipboard.zip 3661 (не забыть разархивировать!)

setup_Clipboardmacro2.rbs 3635


Поделиться с друзьями:
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com blogger.com livejournal.ru google.com yandex.ru del.icio.us

Комментариев: 6

Аркадий
Комментарий отправлен 2014-06-21 в 18:21:22 · Ссылка

Здравствуйте. Спасибо автору за столь полезный макрос. Но хотел узнать, можно ли заставить Rastr считывать данные из Excel. Скажем, есть файл Excel с постоянной структурой, в ячейках которого внесены данные по нагрузкам, топологии, генерации. Можно ли написать такой макрос, в котором будет конкретно прописано: нагрузка N-ого узла таблицы Rastr равна значению в K-той ячейке файла Excel. Конечно, для подобных целей можно использовать данный макрос. Но хотелось бы как-нибудь автоматизировать процесс, т.е. подготовить файл Excel со всеми данными (нагрузками, топологией, генерацией)и "скормить" его Rastr'у. Буду признателен за любую помощь, совет, пример (самый идеальный вариант). Заранее благодарю.

colee
Комментарий отправлен 2014-06-22 в 10:21:34 · Ссылка

Спасибо за отзыв

Если у вас структура файла не меняется и требуется записывать определенные величины в заранее определенные ячейки, то вам поможет динамическая связка Rastr-Excel через ДРВ. Почитать об этом можно в справке к программе

Рустам
Комментарий отправлен 2014-09-03 в 09:14:11 · Ссылка

Здравствуйте! Спасибо за проделанную работу по созданию макроса. Макрос судя по описанию полезный, у меня проблема с использованием этого макроса на практике. Которая заключается в следующем: при копировании информации по нагрузкам узлов (порядка 700 узлов) с помощью макроса из Excel в RastrWin3 процесс переноса информации занимает порядка 40 минут. С чем это связано?

colee
Комментарий отправлен 2014-09-03 в 09:31:43 · Ссылка

В макросе при вставке из буфера используется стандартная (встроенная) функция импорт csv, поэтому посмотрите, как импортирует сам rastr3 csv файл. Еще замечено, что лучше перед импортом больших данных закрывать форму и заново открывать.

Рустам
Комментарий отправлен 2014-09-03 в 13:52:07 · Ссылка

Спасибо! Ваш ответ мне помог в решении проблемы импорта данных из Excel в RastrWin3.

colee
Комментарий отправлен 2014-09-03 в 13:59:23 · Ссылка

Рад, что все разрешилось

Оставьте комментарий!

Используйте нормальные имена

Ваш E-mail не публикуется, используется для обратной связи и для выбора аватара с сайта gravatar.com

Публикуется вместе с комментарием

усмешка LOL сыр улыбка подмигнуть ухмылка глаза в сторону в тупике удивление большое удивление малинка пустое лицо сдвинутая бровь Оо гррр ох ох неудачник смущенный больной Тау хммм бешенный злой клевый поцелуй шок крутой недовольный

Запрещается оскорблять окружающих и использовать ненормативную лексику

Вы должны включить JavaScript, чтобы оставить сообщение