как програмно сделать подбор ширины колонок по содержимому в табличном док #213678


#0 by Taras11
Построитель выводит данные в табличный документ, причем колонки одинаковой ширины. Свой макет сделать не могу, так как заранее не известен даже текст запроса. Интерактивно можно сделать автободбор по содержимому в выведенной таблице. А как програмно?
#1 by asady
было уже совсем недавно:
#2 by Taras11
Спасибо но не подходит. Макета нет. Что искать тоже не известно. Если можно интерактивно подобрать по содержимому (виделить все и два раза нажать на границе столбцов в заголовке) то можно-ли именно это сделать програмно? Я не нашел. Хотя автовысота есть.
#3 by asady
может найти область по тексту (название колонки) и уже с областью поиграть? Синтаксис: НайтиТекст(<Строка>, <Начало>, <Где>, <Искать по строкам>, <Ячейка целиком>, <Искать вперед>, <Игнорировать регистр>) Параметры: <Строка> (обязательный) Тип: Строка. Искомый текст. <Начало> (необязательный) Тип: ОбластьЯчеекТабличногоДокумента. Область, после которой начинать поиск. Если параметр не указан, поиск будет выполнен с начала табличного документа. <Где> (необязательный) Тип: ОбластьЯчеекТабличногоДокумента. Область, в которой осуществляется поиск. Если параметр не указан, поиск будет выполнен по всем ячейкам табличного документа. <Искать по строкам> (необязательный) Тип: Булево. Определяет последовательность обхода ячеек при поиске. Истина - искать по текущей строке, затем переходить на следующую и т.д. в общем направлении поиска, Ложь - искать по текущей колонке, затем переходить на следующую и т.д. в общем направлении поиска. Значение по умолчанию: Истина <Ячейка целиком> (необязательный) Тип: Булево. Истина - искать только такие ячейки, в которых с искомым текстом совпадает весь текст ячейки, Ложь - искать часть текста ячейки. Значение по умолчанию: Ложь <Искать вперед> (необязательный) Тип: Булево. Определяет направление поиска: Истина - искать вперед; Ложь - искать назад. Значение по умолчанию: Истина <Игнорировать регистр> (необязательный) Тип: Булево. Истина - поиск с учетом регистра, Ложь - без учета регистра. Значение по умолчанию: Ложь Возвращаемое значение: Тип: ОбластьЯчеекТабличногоДокумента, РисунокТабличногоДокумента. Область, содержащая искомый текст. Если текст не найден, то возвращается значение Неопределено. Описание: Осуществляет поиск текста в ячейках табличного документа. Пример:
#4 by asady
+ применив свойство области: ОбластьЯчеекТабличногоДокумента (SpreadsheetDocumentRange) ШиринаКолонки (ColumnWidth) Использование: Чтение и запись. Описание: Тип: Число. Содержит ширину колонок в области (в так называемых средних символах шрифта).
#5 by Taras11
Ценю Ваше потраченное время. Это я понял по Вашей сслке. Но чтобы искать нужно знать что искать. А сам запрос будет формировать пользователь (продвинутый он). Вижу одно решение. Просканировать каждый стобец и вычислить максимальное по длине значение. Потом установить ширину для этого столбца. Пока решили что я устанавливаю на все столбцы 10 а пользователь будет сам побирать нужную ширину. Интересует только автоподбор ширины.
#6 by PR
Нет. Есть суррогатное решение на ИТС, посмотри. Но оно не именно в том виде, в котором хочешь ты.
#7 by PR
Ну да, на ИТС примерно о том и речь, просто это для среднего размера символа, а, если шрифт не моноширинный, то размеры символов различаются :o)
#8 by TormozIT
Опять "фича"... Интерактивно сделать можно, а программно нельзя =(
#9 by PR
Я знаю еще несколько таких :)) Например в построителе отчета нельзя программно добавить поле из доступных в измерения строки, измерения колонки, отбор, порядок или выбранные поля. Еще нельзя программно удалить специальный формат строк в поле табличного документа :o)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям