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

Для различных манипуляций с таблицами в растре существуют две незаменимые функции: импорт и экспорт 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

PasteFromClipboard.rbs

setup_Clipboardmacro.rbs

Обновление 10.08.2014

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

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

setup_Clipboardmacro2.rbs

Оцените статью
В коробке инженера
Добавить комментарий для Рустам Отменить ответ

Нажимая на кнопку "Добавить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности

  1. Colee автор

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

    Ответить
  2. Рустам

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

    Ответить
  3. Colee автор

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

    Ответить
  4. Рустам

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

    Ответить
  5. Colee автор

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

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

    Ответить
  6. Аркадий

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

    Ответить