Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Марина от 30-11-2015, 22:41:18
-
Доброго времени суток!!
Пару дней назад нашла я тут https://sites.google.com/site/bushmansnetlaboratory/sendbox/lab/eksport-narisovannyh-liniami-tablic-v-excel очень полезный для меня код с экспортом таблицы в эксель. Я немного переделала его, добавила Мтекст и вывод в текстовый файл. Но вот проблема в чем, не могу догадаться, как распознать пустую ячейку в такой таблице. Подскажите, пожалуйста...
-
Код очень старый и выбранный в нём алгоритм, мягко говоря не слишком хорош. Он не годится для того, чтобы обрабатывать пустые ячейки.
-
Я понимаю, но познания мои еще не столь глубоки, а результат уже нужен..
-
Подправленный алгоритм мне видится таким:
1. Попросить пользователя указать прямоугольную область, в которую попадает вычерченная таблица (текст и линии).
2. На основе нарисованных ячеек сформировать временный набор регионов.
3. Проверить каждый регион на предмет нахождения в нём текста.
4. На основе полученных данных сформировать результат.
-
В принципе, можно и без регионов обойтись, проанализировав конечные точки всех линий таблицы и тем самым получив информацию обо всех ячейках. Количество уникальных координат Y (за вычетом 1) равно количеству строк. Количество уникальных координат X (за вычетом 1) равно количеству столбцов.
Затем, анализируя длины и координаты линий можно понять, какие "ячейки" объединены. Сформировав массив таких "ячеек" (с координатами двух их углов, расположенных по диагонали др. от друга) вы уже сможете анализировать координаты каждого текста, выясняя, в какой ячейке он находится. Соответственно, станет понятным - содержит ли ячейка текст или же она пустая.
-
Спасибо за подсказку, я постараюсь реализовать.
-
Андрей, спасибо еще раз, получился неплохой конвертер из "нарисованных" таблиц в таблицы Автокада.