Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > [delphi] Excel - ссылка в ячейке, цвет ячейки


Автор: pegorov 7.9.2010, 20:12
Привет всем.

Требуется разобрать экселевскую табличку на составляющие. Как получить текст из определенной ячейки понятно, я через OLE делаю, например. А как можно получить адрес ссылки, находящийся в определенной ячейке и цвет ее фона?

Автор: Данкинг 7.9.2010, 20:27
Цвет ячейки - activeworkbook.activesheet.cells[x,y].Interior.Color.

Автор: pegorov 7.9.2010, 22:39
Так, одна проблема решена =)
А вот со ссылкой как-то все сложно. Гугль ответов не дает =(

Автор: Данкинг 7.9.2010, 22:46
Цитата(pegorov @  7.9.2010,  23:39 Найти цитируемый пост)
А вот со ссылкой как-то все сложно. 

activeworkbook.activesheet.cells[x,y].formular1c1 - не подходит?

Автор: Albinos_x 8.9.2010, 14:11
Цитата(pegorov @  7.9.2010,  20:12 Найти цитируемый пост)
А как можно получить адрес ссылки

по точнее про какие ссылки идет речь?

Автор: pegorov 8.9.2010, 15:07
Цитата(Albinos_x @ 8.9.2010,  14:11)
Цитата(pegorov @  7.9.2010,  20:12 Найти цитируемый пост)
А как можно получить адрес ссылки

по точнее про какие ссылки идет речь?

Есть ячейка. В ячейке гиперссылка.

ЗЫ Данкинг, спасибо, как до нормального компьютера доеду, попробую =)

Автор: pegorov 8.9.2010, 21:52
Цитата(Данкинг @ 7.9.2010,  22:46)
Цитата(pegorov @  7.9.2010,  23:39 Найти цитируемый пост)
А вот со ссылкой как-то все сложно. 

activeworkbook.activesheet.cells[x,y].formular1c1 - не подходит?

Нет, не прокатило. Собственно, и не должно было, там же все-таки не функция в ячейке =)

Автор: Данкинг 8.9.2010, 22:23
А тип ячейки-то (в которой ссылка) какой?

Автор: pegorov 9.9.2010, 00:11
Цитата(Данкинг @ 8.9.2010,  22:23)
А тип ячейки-то (в которой ссылка) какой?

То есть формат ячейки? Формат общий.

Автор: Данкинг 9.9.2010, 00:56
Что-то я тогда не понимаю: а что именно не работает? Нужно взять значение ячейки, а в чём проблема? Вот так вот ссылка нормально показывается:
Код

MsgBox (ActiveCell.FormulaR1C1)

И дальше уже делаешь с ней, что нужно.

Добавлено через 1 минуту и 2 секунды
Цитата(pegorov @  8.9.2010,  22:52 Найти цитируемый пост)
Собственно, и не должно было, там же все-таки не функция в ячейке =) 

FormulaR1C1 возвращает именно значение ячейки.

Автор: pegorov 9.9.2010, 01:23
Так =) Кто-то из нас чего-то не понимает. =)
вот файлик http://zalil.ru/29653680
Там на первой и единственной вкладке в ячейке А1 содержится гиперссылка с текстом CURRENT LIST и адресом http://ya.ru/

код
Код

procedure TForm1.btn1Click(Sender: TObject);
var Excel: Variant;
begin
    Excel := CreateOleObject('Excel.Application');
    Excel.Workbooks.Open['d:\123.xls', 0, True];
    ShowMessage(Excel.ActiveWorkbook.Sheets.Item[1].Cells[1, 'A'].formular1c1);
    Excel.ActiveWorkbook.Close;
    Excel.Application.Quit;
end;


возвращается окошко с текстом CURRENT LIST. "http://ya.ru/" не возвращается.

Автор: Данкинг 9.9.2010, 09:09
Цитата(pegorov @  9.9.2010,  02:23 Найти цитируемый пост)
ам на первой и единственной вкладке в ячейке А1 содержится гиперссылка с текстом CURRENT LIST и адресом http://ya.ru/

А такого даже никогда не видел. А подобную ссылку вставить в ячейку? Может, от обратного надо начинать.

Автор: aleksh 9.9.2010, 10:31
Код

    Excel := CreateOleObject('Excel.Application');
    Excel.Workbooks.Open['d:\123.xls', 0, True];
    ShowMessage(Excel.ActiveWorkbook.Sheets.Item[1].Cells[1, 'A'].formular1c1);
    showmessage(excel.activeworkbook.sheets.item[1].hyperlinks[1].Address);
    Excel.ActiveWorkbook.Close;
    Excel.Application.Quit;


в макросах все написано

Автор: pegorov 9.9.2010, 18:37
Точно, спасибо!

Автор: aleksh 9.9.2010, 22:44
тогда следует отметить вопрос как решенный

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)