По следам решения выгрузки таблиц MXL в XLS.
Хотел определить высоту строк, у которых в свойствах стоит АвтоВысота. Т.к. Эксель не выставляет свойство высоты строки как положено. Остается только одна строка.
FormEx загружен 191.
Вот пробовал такой код.
Таб.Открыть(ИмяФайла);
МенеджерТабл = СоздатьОбъект("МенеджерТабличногоДокумента");
МенеджерТабл.УстановитьТаблицу(Таб,);
Для инд = 1 по Таб.ВысотаТаблицы() Цикл
ОблМен=МенеджерТабл.Область(инд);
ВысотаСтрМен=ОблМен.ВысотаСтрокиРасш();
Обл=Таб.Область(инд);
ВысотаСтр=Обл.ВысотаСтроки();
ММ=Сервис.ВысотаСтрокиТаблицы(Таб,инд,1);//мм
Пикс=Сервис.ВысотаСтрокиТаблицы(Таб,инд,2);//пикс
Юнит=Сервис.ВысотаСтрокиТаблицы(Таб,инд,3);//юнит
Сообщить(""+инд+" ВысотаСтр="+ВысотаСтр+" ВысотаСтрМен="+ВысотаСтрМен+" ММ="+ММ+" Пикс="+Пикс+" Юнит="+Юнит);
КонецЦикла;
Ответ в таком виде:
28 ВысотаСтр=23 ВысотаСтрМен=23 ММ=0 Пикс=0 Юнит=0
29 ВысотаСтр=0 ВысотаСтрМен=0 ММ=0 Пикс=0 Юнит=0 - это для строк с автовысотой
Как видно стандартный метод, как и расширенный метод компоненты TableDoc, возвращают высоту = 0 для строк с автовысотой.
Но вопрос - почему Formex вообще все параметры нулевые вернул?
Отвечаю сам себе. Читать внимательнее нужно описание....
"Метод работает только для таблиц, которые уже выведены на экран методом Показать()."
А я Показать() использовал после!
Это все работает через ж* и по разному для разных операционных систем.
Пытался приструнить, когда Йоксель для импорта 95го формата патчил, не понятно как это победить.
Все, все и все, и MSOffice и LibreOffice считают не правильно, когда есть автовысота.
Как победить без понятия...
Но 0 это и есть (вроде, не помю уже) автовысота, так уж сложилось.
Да. Сделал так.
Пробегаюсь по строкам таблицы. Определяю была ли установлена Автовысота, и если да, то принудительно ставлю ВысотаСтроки() в новое значение = Пикс/Коэф. Коэф пока подобрал как 1.25.