Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Range и Cells.... / 7 сообщений из 7, страница 1 из 1
17.08.2006, 11:15:13
    #33924022
анатолик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Range и Cells....
Здравствуйте!
Вопросец у меня такой:
Программирую в Delphi отчет выводимый в Excel. Как известно, для обращения к ячейка экселя используются объекты Range и Cells. Т.е. обратиться к ячейке с номером A1 можно либо Range['А1'], либо Cells(1, 1). Для меня удобнее использовать Cells, хотя многие методы и св-ва к нему не применимы (например, RowHeight, WrapText и т.д.). Появляется необходимость перехода от системы счисления, типа "1,1", к с.с. "А1".
Реализуется ли это стандартными методами? Или есть более логичные методы работы с этими объектами.
Заранее благодарю.
...
Рейтинг: 0 / 0
17.08.2006, 11:30:00
    #33924092
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Range и Cells....
анатоликхотя многие методы и св-ва к нему не применимы (например, RowHeight, WrapText и т.д.)
Почему не применимы?

Код: plaintext
1.
2.
3.
4.
    Range("A1").RowHeight = Range("A1").RowHeight *  2 

    ' То же самое.
    
    Cells( 1 ,  1 ).RowHeight = Cells( 1 ,  1 ).RowHeight *  2 
...
Рейтинг: 0 / 0
17.08.2006, 11:37:29
    #33924129
анатолик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Range и Cells....
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
      
  ...
  E := CreateOleObject('Excel.Application');
  E.WorkBooks.Add;
  Sheet := E.Sheets.Item[ 1 ];
  ...
  Sheet.Cells( 2 ,  2 ).RowHeight :=  45 ;  //Exception: "Член группы не найден"

То же и с ColumnWidth, WrapText, HorizontalAlignment и т.д.
Может что-нибудь не то делаю?
...
Рейтинг: 0 / 0
17.08.2006, 11:47:21
    #33924164
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Range и Cells....
Вам, походу, надо использовать конструкцию
Код: plaintext
1.
Set sheet = E.Sheets.Item( 1 )
Sheet.Cells( 2 ,  2 ).RowHeight =  45 
Только как она будет выглядеть в дельфи я не знаю.

...
Рейтинг: 0 / 0
17.08.2006, 11:52:08
    #33924183
анатолик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Range и Cells....
k-nikeВам, походу, надо использовать конструкцию
Код: plaintext
1.
Set sheet = E.Sheets.Item( 1 )
Sheet.Cells( 2 ,  2 ).RowHeight =  45 
Только как она будет выглядеть в дельфи я не знаю.



Я же именно это и написал!
На
Код: plaintext
Sheet.Cells( 2 ,  2 ).RowHeight :=  45 
возникает эксепшн "Член группы не найден".
Вопрос в переходе от координат 1,1 к А1...
...
Рейтинг: 0 / 0
17.08.2006, 12:02:06
    #33924223
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Range и Cells....
Чтение/запись данных в EXCEL

Доступ к ячейке в текущей книге Excel можно осуществить следующим образом:
Excel.Range['B2']:='Привет!';- для записи значения в ячейку или
s:=Excel.Range['B2']; - для чтения,
где B2 - адрес ячейки.

Или используя стиль ссылок R1C1:
Excel.Range[excel.Cells[2, 2]]:='Привет!';, где [2, 2] - координата ячейки.

Вообще, ячейке Excel можно присваивать любое значение (символьное, целое, дробное, дата) при этом Excel установит форматирование в ячейке применяемое по умолчанию.

Формат ячеек в EXCEL

Выделить (выбрать) группу ячеек для последующей работы можно так:
Excel.Range[Excel.Cells[1, 1], Excel.Cells[5, 3]].Select;
или
Excel.Range['A1:C5'].Select;
при этом будет выделена область находящаяся между ячейкой A1 и C5.

После выполнения выделения можно установить:
1) объединение ячеек
Excel.Selection.MergeCells:=True;
2) перенос по словам
Excel.Selection.WrapText:=True;
3) горизонтальное выравнивание
Excel.Selection.HorizontalAlignment:=3;
при присваивании значения 1 используется выравнивание по умолчанию, при 2 - выравнивание слева, 3 - по центру, 4 - справа.
4) вериткальное выравнивание
Excel.Selection.VerticalAlignment:=1;
присваиваемые значения аналогичны горизонтальному выравниванию.
5) граница для ячеек
Excel.Selection.Borders.LineStyle:=1;
При значении 1 границы ячеек рисуются тонкими сплошными линиями.
Кроме этого можно указать значения для свойства Borders, например, равное 3. Тогда установится только верхняя граница для блока выделения:
Excel.Selection.Borders[3].LineStyle:=1;
Значение свойства Borders задает различную комбинацию граней ячеек.
В обоих случаях можно использовать значения в диапазоне от 1 до 10.

Ссылка гугла: http://www.webcorp.ru/page/excel_delphi.html

...
Рейтинг: 0 / 0
17.08.2006, 12:18:47
    #33924306
анатолик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Range и Cells....
Ох уж мне эти специалисты по поиску)...
Спасибо, все работает!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Range и Cells.... / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]