Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-01-2014
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Volcar url de Delphi a Excel

Hola a todos,
estoy volcando datos de delphi a Excel.

Para ello, en un programa delphi, tengo un boton que llama a una función que hace todo perfectamente menos... una formula que crea un hipervinculo.

Tengo un campo que me monta a la perfección la llamada

=HIPERVINCULO("http://servidor.dominio.es:80/CAisd/web.exe?OP=SEARCH+FACTORY=cr+SKIPLIST=1+QBE.EQ.id=7752545";"984368")

Cuando este campo lo paso a excel, me da un error de conexión.

El problema está en el igual. Si este valor lo copio y lo pego a mano, excel hace algo con él, y me funciona correctamente.

la llamada a excel es así:

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
  excel,WrkB :OleVariant; Salida: string;
begin
  try
    excel:= ComObj.CreateOleObject('Excel.Application');
  except
    ShowMessage('Excel no se pudo iniciar.');
    exit;
  end;
  excel.Visible:=true;

  WrkB := Excel.Workbooks.Add ;

  EjecutarConsulta;
  Salida:= AExcel( 1,1,1,excel,WrkB, ADOQuery1);

function TForm1.AExcel( Hoja,Fila,Columna: Integer; excel,WrkB :OleVariant; Data:TADOQuery): string;
var
  WrkS :OleVariant;
  Campo:Integer;
  Salida: string;
begin
  Data:=ADOQuery1;
  if not Data.Active then
  begin
    messageDlg('La consulta debe ejecutarse previamente',
              mtConfirmation, [mbOK],0);
    Exit;
  end;
  WrkS := WrkB.Worksheets.Item[Hoja];

  Data.First;
  Salida:= FormatDateTime('[hh:mm:ss]',now)+ ' Comienzo Proceso... ';

    for Campo := 0 to Data.FieldCount-1 do
    begin
      WrkS.Cells[fila,Campo+Columna].Value:=Data.fields[Campo].FieldName;
    end;

  try
    while not(Data.eof) do
    begin
      for Campo := 0 to Data.FieldCount-1 do
      begin
        if not Data.Fields[Campo].IsNull then
          WrkS.Cells[fila,Campo+Columna].Value:=trim(Data.Fields[Campo].AsString);
      end;
      Data.Next;
      fila:= fila + 1;
    end;
  Except
     ShowMessage('Atención, se produjo un error en la transmisión.');
  end;

end;
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #2  
Antiguo 09-01-2014
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola,
el error que me da es "OLE error 800A03EC"

Es un error conocido, pero no sé cómo salvarlo. He intentado copiar el valor al portapapeles y desde allí copiarlo. Me funciona, a excepción de que no sé cómo colocarme en la celda correspondiente antes de pegar el dato.

Agradecería cualquier ayuda.

Gracias y un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #3  
Antiguo 20-01-2014
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola a todos,
me respondo a mi mismo, por si a alguien le ocurre lo mismo.

Cuando se exporta una fórmula, como es mi caso, no se puede utilizar la propiedad Cells[].Value, sino la propiedad Range[].Formula.

Código Delphi [-]
WrkS.Cells[fila,Campo+Columna].Value:= Dato;

WrkS.Range[strRango,strRango].Formula:=dato;

La particularidad es que cuando se utiliza Range, hay que utilizar "A1" y cuando se utiliza Cells debe poner el nº de fila y columna.

Código Delphi [-]
WrkS.Cells[1,1].Value:= Dato;

WrkS.Range['A1','A1'].Formula:=dato;
Espero que sea de utilidad.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
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
Llenar un Combobox con un campo de una tabla MySql. Desde un qry volcar los datos. juanpy PHP 9 12-10-2012 04:46:06
de excel a delphi ddd_ddd SQL 4 26-06-2008 17:45:28
Delphi con Excel heloinho Varios 9 14-11-2007 12:24:49
excel a delphi, como mostrar columnas de excel Vyckso Servers 2 13-08-2007 12:38:08
Volcar un form a fichero epalacios Varios 1 03-06-2004 16:36:21


La franja horaria es GMT +2. Ahora son las 22:31:14.


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