Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-05-2010
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Wink Leer el hyperlik de una celda en un archivo de excel

hola muchachos les tengo una muy buena pregunta.

necesito obtener el adress de un hyperlink de una celda en un archivo de excel.

Para darme mejor a entender imaginense una archivo de excel cualquiera con la celda 'B2' donde tengo un texto que dice HOLA pero su adrees apunta a una pagina de internet 'www.clubdelphi.com'

necesito el codigo para realizar consultar el adrees de todas las celdas de un documento.
creo ir por buen camino pero no logro sacar el dato
este es el codigo que estoy usando please ayudenme no he podido avanzar en esto me ayudan ....

Código:
 
var
Libro : _WORKBOOK;
Hoja : _WORKSHEET;
direccion:string;
begin
Libro := ExcelApplication1.Workbooks.Add('c:\ejemplo.xls', 0);
Hoja := Libro.Sheets[1] as _WORKSHEET;
 
 
direccion:=Hoja.Cells.Hyperlinks['B2'].Address;
 
end;
Responder Con Cita
  #2  
Antiguo 11-05-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A ver si así:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
    Excel: OleVariant;
    Libro: OleVariant;
    Hoja: OleVariant;

begin
    Excel := ComObj.CreateOleObject('Excel.Application');

    Libro := Excel.Workbooks.Open('C:\ruta\al\archivo.xls');
    Hoja := Libro.ActiveSheet;
    Excel.Visible := true;

    ShowMessage(Hoja.Cells[2, 'B'].Hyperlinks[1].Address);
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 11-05-2010
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
no funciono roman
Primero puse tu codigo natural como me lo indicaste pero me carca un error
con el "ComObj"

Código:
    Excel := ComObj.CreateOleObject('Excel.Application');
Asi que modifique el codigo y inserte la ultima linea esta
en el mismo codigo que utilice y sigue sin funcionar

Código:
ShowMessage(Hoja.Cells.Item[2,'B'].Hyperlinks[1].Address);
Lo modifique asi y tampoco me dice "invalid index"
alguna otra idea o como arreglamos esta para que sirva
Responder Con Cita
  #4  
Antiguo 11-05-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por abdul Ver Mensaje
alguna otra idea o como arreglamos esta para que sirva
Con mi código, añade ComObj al uses de la unidad.

// Saludos
Responder Con Cita
  #5  
Antiguo 11-05-2010
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
En la parte de arriba donde están los Uses, incluye también el (ComObj)
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Excel, Libro, Hoja: OleVariant;
begin
  Excel := CreateOleObject('Excel.Application');

  Libro := Excel.WorkBooks.Open('C:\ruta\al\archivo.xls');

  Hoja := Libro.ActiveSheet;

  Excel.Visible := False;

  ShowMessage(Hoja.Cells[2, 'B'].Hyperlinks[1].Address);
end;
Responder Con Cita
  #6  
Antiguo 11-05-2010
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Wink ya funciono pero hay un inconvenente

me manda un error cuando apunto a una celda que no tiene un hyperlink

y tego una duda yo se que ya funciono pero me quedo inquieta porque no se
porque tenemos que poner 1 como index en el codigo del hyperlink

Código:
 
Hyperlinks[1].Address

como le puedo hacer para saber si tiene un hyperlink antes de pedir su adress
yo supongo que es algo muy parecido como cuando apuntamos a un parent en un tree view pero no encuentro esa funcion que me indique si tiene o no un hyperlink

como le puedo hacer?


hay muchas gracias por la ayuda la agradesco muchismo me ayuda y enselan mucho
Responder Con Cita
  #7  
Antiguo 11-05-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una celda es un caso particular de un rango (un rango es un conjunto de celdas) y en un rango puede haber varios enlaces (en distintas celdas).

Suponiendo que tienes enlaces en B2 y C2, entonces puedes obtenerlos así:

Código Delphi [-]
ShowMessage(Hoja.Range['B2:C2'].Hyperlinks[1].Address);
ShowMessage(Hoja.Range['B2:C2'].Hyperlinks[2].Address);

Puedes saber cuántos enlaces hay en un rango con

Código Delphi [-]
Hoja.Range['B2:C2'].Hyperlinks.Count

Así que, para saber si una celda tiene o no un enlace, puedes hacer:

Código Delphi [-]
if Hoja.Cells[2, 'B'].Hyperlinks.Count > 0 then

Por lo dicho antes, dado que una celda es una rango de una sóla celda, también puedes referirte a ella con

Código Delphi [-]
Hoja.Range['B2:B2']

o bien

Código Delphi [-]
Hoja.Range['B2']

// Saludos
Responder Con Cita
  #8  
Antiguo 11-05-2010
Avatar de jazmin
jazmin jazmin is offline
Miembro
 
Registrado: mar 2007
Ubicación: mexico
Posts: 44
Poder: 0
jazmin Va por buen camino
Wink muchas muchas gracias

Con eso creo yo que es mas que suficiente ahora si voy avanzar en mi programa


son muy muy amables

espero aprender mucho de ustedes y de ti roman para dentro de mucho pero ser como tu de lista jejeje

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Leer dato de archivo excel neilpl26 Varios 3 29-01-2010 15:49:41
Leer Comentario en Celda de Excel Kipow Servers 1 25-09-2008 21:33:19
celda excel Alejandro Horns Tablas planas 1 29-07-2005 09:19:29
leer un archivo de excel y pasarlo a una Tabla paradox!! jmedina Varios 1 17-03-2005 01:08:31
leer archivo de excel en delphi JavierR Conexión con bases de datos 0 13-07-2003 03:56:49


La franja horaria es GMT +2. Ahora son las 02:52:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi