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;