• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как получить текст из таблицы?

Автор SergNLMK, 23.04.23, 07:56:05

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

SergNLMK

Здравствуйте, коллеги!
Хочу извлекать текст из таблицы такого типа:
Таблица.jpg

Пробую через API7:
# Чтение таблиц API7
iViewsAndLayersManager = iKompasDocument2D.ViewsAndLayersManager
iViews = iViewsAndLayersManager.Views
iView = iViews.ActiveView
iSymbols2DContainer = KAPI7.ISymbols2DContainer(iView)
iDrawingTables = iSymbols2DContainer.DrawingTables
iDrawingTable = iDrawingTables.DrawingTable(0)
iTable = KAPI7.ITable(iDrawingTable)
iTableCell = iTable.CellById(1)
iText = iTableCell.Text
text_cell = iText.Str
Но вылетает ошибка, что iText - это IKompasAPIObject и у него нет свойства Str.

Пробую через API5:
# Чтение таблиц API5
iTextParam = KAPI.ksTextParam(iKompasObject.GetParamStruct(const.ko_TextParam))
text_get = iDocument2D.ksGetTableColumnText(3, iTextParam)
print(text_get)
На этот раз ошибки нет, но выводится кортеж (0, 3).

Подскажите, как добраться до текста в таблице?

Михаил88

iTableCell = iTable.CellById(1)
iText = kompas_api7_module.IText(iTableCell.Text)
text_cell = iText.Str
print(text_cell)
+ Благодарностей: 1

Михаил88

Можно еще так.
table_range = iTable.Range(0, 0, iTable.RowsCount, iTable.ColumnsCount)
print(table_range.Texts)

Screenshot_1.bmp
Screenshot_2.bmp
+ Благодарностей: 1

SergNLMK

Огромное спасибо!!! :o:
Все работает!
Проанализировал код, изучив SDK, и понял, что до второго варианта я мог бы догадаться. Но про первый в SDK и намека нет.
Так что спасибо за уникальную информацию!