Конференция "Corba" » Вставка многострочного текста в ячейку Excel [Delphi, Windows]
 
  • pavel_guzhanov © (25.05.06 16:05) [0]
    Никак не могу придумать, как сделать следующее: В excel объединяю ячейки, например с A10:I10, позволяю добавлять в объединенную ячейку многострочный текст, добавляю его. Получается, что в объединенной ячейке видна только первая строка вставленного текста. Если я выделяю эту ячейку, то в строке формул показывается весь текст. Можно увеличить высоту ячейки, тогда весь текст будет виден, но вопрос в том, как определить, на сколько увеличить высоту, т.к. в разных случаях текст, помещаемый туда, может быть разным. Кусочек кода:
    Sheet.Range['A10:I10'].MergeCells := True;// Объединил
     Row1:=m_XLApp.Workbooks[1].Worksheets['Отчет'].Rows;
     Row1.Rows[10].WrapText:=true;// разрешил многострочный
     Sheet.Cells(10,1):=MKomment.Text;//Добавил текст из мемо
     Row1.Rows[10].RowHeight:=100;// например сделал высоту 100



    Повторю вопрос: Как определить величину, до которой надо увеличить высоту ячейки, чтобы виден был весь текст?
  • umbra © (25.05.06 19:21) [1]
    да в общем, ники это не определить. это зависит от шрифта, размера шрифта и т.д. Но я заметил, что иногда форматирование применяется правильно, только если сначала присвоить значение, а затем форматировать. Т.е. попробуйте поменять местами 3-ю и 4-ю стрчки кода
  • YurikGL © (25.05.06 21:47) [2]

    > Т.е. попробуйте поменять местами 3-ю и 4-ю стрчки кода

    И 5-ю убери :)
  • pavel_guzhanov © (26.05.06 09:50) [3]

    > иногда форматирование применяется правильно, только если
    > сначала присвоить значение, а затем форматировать. Т.е.
    > попробуйте поменять местами 3-ю и 4-ю стрчки кода

    не помогло:0(((
  • umbra © (26.05.06 10:48) [4]
    попоробуйте такую комбинацию:

    Row1.Rows[10].WrapText:=true;// разрешил многострочный
    Sheet.Cells(10,1):=MKomment.Text;//Добавил текст из мемо
    Row1.Rows[10].AutoFit;// автоподбор высоты строки

  • pavel_guzhanov © (26.05.06 12:52) [5]
    Неа, ничего не изменилось :0(( Пробовал в разном порядке, сперва ввести значение, а потом формат ячеек, пробовал наоборот... результат тот же
  • umbra © (26.05.06 13:09) [6]
    ну, шаманить так шаманить! :) попробуйте объединить ячейки после остальных действий
  • pavel_guzhanov © (26.05.06 15:01) [7]

    > ну, шаманить так шаманить! :) попробуйте объединить ячейки
    > после остальных действий

    Уже пробовал:0)). Пробовал проводить эти действия (объединение, разрешение многострочности, разрешение автоподбора высоты) во всех мыслимых комбинациях:0))
  • TheEd (21.10.07 05:05) [8]
    Кто нибудь с этим справился?
    Мне тоже очень нужно это!!!

    Помогите!
  • TheEd (27.10.07 15:03) [9]
    обходным путём можно определить:
    правее в документе, в неиспользуемом столбце делаем так:
    tmp :=  ширина
    ширина := сумма ширин стобцов, входящих в объединённую ячейку
    формат текста := формат в объединённой ячейке
    вставляем туда текст
    h := высота строки
    текст := ''
    если надо, ширина := tmp
    текст в объединённой ячейке := ...
    высота := h

    сорри за словестный алгоритм, я на работе, вспоминать трудно, но дома так сделал - помогла, лишь иногда неправильно определяет (с завышением на 1 строку), когда значения предельные
 
Конференция "Corba" » Вставка многострочного текста в ячейку Excel [Delphi, Windows]
Есть новые Нет новых   [134430   +3][b:0][p:0.001]