вторник, 17 апреля 2012 г.

Excel2Grid

Обычная задачка, которая возникает наверное у каждого проектировщика каждый день. Выполнил некий табличный расчет в Microsoft Excel, а оформить его надо бы в чертеже AutoCAD. Вот только копирование через буфер из Microsoft Excel в Autodesk AutoCAD не очень красивое. Кто-то мирится с получаемым результатом, кто-то ищет обходные пути, в конечном счете, оба пути верные.
Я предпочел пойти вторым путем и написал модуль Excel2Grid, который позволяет перенести выбранный диапазон ячеек из Microsoft Excel в редактор таблиц ATable с минимальным искажением результата.
Вот пример таблицы, которую используют специалисты строительного отдела:


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


Прежде всего, в Microsoft Excel надо выбрать диапазон ячеек подлежащих экспорту-импорту.


В редакторе таблиц ATable в меню Таблица выбрать пункт Импорт из Excel....


В диалоговом окне Excel2Grid необходимые вернуть ссылку нажатием кнопки Ссылка и указать параметры импорта.
Многие параметры говорят сами за себя, а некоторые я поясню:
Использовать размер диапазона из Excel - означает, что размер импортируемой таблицы будет определен исходя из диапазона выбранных ячеек в Microsoft Excel, а не исходя из размера таблицы ATable.
Коэф. преобразования размеров - коэффициент применяемый для преобразования ширины и высоты ячеек из единиц измерения Microsoft Excel в единицы измерения AutoCAD.
Вписать ширину таблицы в - игнорирует коэффициент преобразования размеров и рассчитывает его исходя из размера в который надо вписать таблицу. Например, в моем случае, таблица будет вписана в 395 мм по ширине.


Если все параметры указаны и ссылка определена можно смело жать Обновить и наслаждаться процессом переноса таблицы в ATable.


Несколько секунд и таблица уже в чертеже! Можно закрыть Excel2Grid и довести таблицу до кондиции дополнительным манипуляциями, если они на самом деле нужны.


Нарочно показываю результат импорта крупно, чтобы было видно, что учтено и объединение ячеек, и поворот текста и т.п.


Добавлю, что Excel2Grid позволяет не только выполнить единовременный импорт данных из Microsoft Excel в ATable, но и установить связь между таблицей и файлом xls. После закрытия Excel2Grid записывает ссылку и параметры импорта в свойства таблицы ATable. Таким образом, если "экселевский" файл претерпит изменения, все их можно увидеть в чертеже вызвав команду обновления таблицы не открывая ATable!

Итак, две команды:
atUpdateExcel2Grid - обновить выбранные таблицы в соответствии с ссылками.
atUpdateAllExcel2Grid - обновить все таблиц в соответствии с ссылками.
В итоге, все изменения "экселевских" файлов отразятся в таблицах ATable!
Одно лишь требование, пути к файлам Excel'а не должны меняться, иначе обновление не получится. Но это не проблема для тех, у кого четко структурировано хранение документов. :)
Удачи!


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

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