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 29-05-2004
Jose Manuel Jose Manuel is offline
Miembro
 
Registrado: may 2003
Posts: 112
Poder: 22
Jose Manuel Va por buen camino
Abrir plantilla Excel y pasarle datos

Hola, estoy trabajado D6 Enterprise y en una aplicación que tengo, quisiera poder abrir un plantilla excel y pasarle datos de un Base de Datos.
He visto algunos ejemplos, pero al ponerlos en practica no me funcionan, yo he puesto dos botones, uno para abrir excel y otro para cerrarlo, pero solo se abre una vez y ya no puedo volver a abrirla.

Este es el codigo, por si alguien me dice que está mal.

Un saludo a todos
Jose Manuel

.........................................................................

Código Delphi [-]
procedure Tfresumen.Btn_pasar_a_excelClick(Sender: TObject);
var
  aLCID,x,y : Integer;
  sValue:String;
begin
      // Abrir plantilla de excel
      aLCID := GetUserDefaultLCID;
      ArchivoXL := ExtractFilePath(ParamStr(0))+'resumen.xls'; //Plantilla EXCEL
      ExcelApplication1.Connect;
      ExcelApplication1.Visible[aLCID] := True;
      ExcelApplication1.UserControl := True;
      ExcelApplication1.Workbooks.Open(archivoXL, False, False,
         EmptyParam,'',False,False,EmptyParam,
         EmptyParam,false,false,EmptyParam,false,0);
     ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkBook);
     ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Sheets.Item[1] as _Worksheet);
      ExcelWorksheet1.PageSetup.LeftHeader := 'resumen';
end;

procedure Tfresumen.Btn_Cerrar_ExcelClick(Sender: TObject);
begin
   ExcelWorksheet1.Disconnect;
   ExcelWorkbook1.Disconnect;
   ExcelApplication1.Disconnect;
   ExcelApplication1.Quit;
end;

Última edición por roman fecha: 29-05-2004 a las 20:27:49. Razón: Agregar etiqueta [delphi] para mayor claridad del código
Responder Con Cita
  #2  
Antiguo 01-06-2004
rpadin rpadin is offline
Miembro
 
Registrado: ene 2004
Posts: 47
Poder: 0
rpadin Va por buen camino
Tengo un ejemplo completo (I)

Buenos días.

Tengo un ejemplo completo, pero como no me lo deja insertar todo de una vez te lo divido en dos

---------------INICIO PRIMERA PARTE -------------

procedure TConcesionForm.BtnExportarExcelClick(Sender: TObject);
var
creado:boolean;
fila: integer;
Excel : Variant;
Arquivo, PlantillaXLS, nome_columna_1, nome_columna_2 : String;
begin

creado:= false;
PlantillaXLS:= DM.ConcesionPlantillaXLS;

InfoConcesion.ParamByName('id_concesion').AsInteger:= nID;
InfoConcesion.Open;
InfoConcesionDatTecnicos.open;
InfoConcesionIncidencias.open;
InfoConcesionAccionistas.open;
if InfoConcesion.FindFirst
Then
Begin
if SaveDialog1.Execute
then Arquivo:= SaveDialog1.FileName;

if length(trim(Arquivo)) > 0
Then
Begin
try
Excel := CreateOleObject('Excel.Application');
if Length(Trim(PlantillaXLS)) > 0
Then Excel.Workbooks.Open(PlantillaXLS)
Else Excel.Workbooks.Add;
creado:=true;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+1, DM.ConcesionPlantillaXLSColumnaIni+8].Value:=DateToStr(Date);
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+3, DM.ConcesionPlantillaXLSColumnaIni+8].Value:=TimeToStr(Now);

InfoConcesion.First;
while not InfoConcesion.Eof do
Begin
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+5, DM.ConcesionPlantillaXLSColumnaIni+1].Value:=InfoConcesion.FieldByName('frecuencia').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+5, DM.ConcesionPlantillaXLSColumnaIni+2].Value:=InfoConcesion.FieldByName('localidad').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+5, DM.ConcesionPlantillaXLSColumnaIni+5].Value:=InfoConcesion.FieldByName('provincia').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+5, DM.ConcesionPlantillaXLSColumnaIni+8].Value:=InfoConcesion.FieldByName('estado').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+7, DM.ConcesionPlantillaXLSColumnaIni+1].Value:=InfoConcesion.FieldByName('modalidad').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+7, DM.ConcesionPlantillaXLSColumnaIni+4].Value:=InfoConcesion.FieldByName('fecha_concesion').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+7, DM.ConcesionPlantillaXLSColumnaIni+6].Value:=InfoConcesion.FieldByName('fecha_caducidad').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+7, DM.ConcesionPlantillaXLSColumnaIni+8].Value:=InfoConcesion.FieldByName('control').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+9, DM.ConcesionPlantillaXLSColumnaIni+1].Value:=InfoConcesion.FieldByName('cif').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+9, DM.ConcesionPlantillaXLSColumnaIni+3].Value:=InfoConcesion.FieldByName('sociedad').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+11, DM.ConcesionPlantillaXLSColumnaIni+1].Value:=InfoConcesion.FieldByName('dcadena').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+11, DM.ConcesionPlantillaXLSColumnaIni+5].Value:=InfoConcesion.FieldByName('dprogramacion').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+13, DM.ConcesionPlantillaXLSColumnaIni+1].Value:=InfoConcesion.FieldByName('Observaciones').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+18, DM.ConcesionPlantillaXLSColumnaIni+1].Value:=InfoConcesionDatTecnicos.FieldByName('n_colegio').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+18, DM.ConcesionPlantillaXLSColumnaIni+3].Value:=InfoConcesionDatTecnicos.FieldByName('ingeniero').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+20, DM.ConcesionPlantillaXLSColumnaIni+2].Value:=InfoConcesionDatTecnicos.FieldByName('fecha_aprobacion').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+20, DM.ConcesionPlantillaXLSColumnaIni+4].Value:=InfoConcesionDatTecnicos.FieldByName('referencia').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+20, DM.ConcesionPlantillaXLSColumnaIni+7].Value:=InfoConcesionDatTecnicos.FieldByName('denominacion').AsString;


Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+21, DM.ConcesionPlantillaXLSColumnaIni+3].Value:=InfoConcesionDatTecnicos.FieldByName('longitud').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+21, DM.ConcesionPlantillaXLSColumnaIni+5].Value:=InfoConcesionDatTecnicos.FieldByName('latitud').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+21, DM.ConcesionPlantillaXLSColumnaIni+8].Value:=InfoConcesionDatTecnicos.FieldByName('cota').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+22, DM.ConcesionPlantillaXLSColumnaIni+3].Value:=InfoConcesionDatTecnicos.FieldByName('pra').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+22, DM.ConcesionPlantillaXLSColumnaIni+5].Value:=InfoConcesionDatTecnicos.FieldByName('marca').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+22, DM.ConcesionPlantillaXLSColumnaIni+8].Value:=InfoConcesionDatTecnicos.FieldByName('car').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+23, DM.ConcesionPlantillaXLSColumnaIni+3].Value:=InfoConcesionDatTecnicos.FieldByName('p_max_tx').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+23, DM.ConcesionPlantillaXLSColumnaIni+7].Value:=InfoConcesionDatTecnicos.FieldByName('p_max_auto').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+24, DM.ConcesionPlantillaXLSColumnaIni+3].Value:=InfoConcesionDatTecnicos.FieldByName('directividad').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+25, DM.ConcesionPlantillaXLSColumnaIni+3].Value:=InfoConcesionDatTecnicos.FieldByName('h_mastil').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+26, DM.ConcesionPlantillaXLSColumnaIni+3].Value:=InfoConcesionDatTecnicos.FieldByName('h_s_suelo').AsString;

Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+24, DM.ConcesionPlantillaXLSColumnaIni+5].Value:=InfoConcesionDatTecnicos.FieldByName('polaridad').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+25, DM.ConcesionPlantillaXLSColumnaIni+5].Value:=InfoConcesionDatTecnicos.FieldByName('s_radiante').AsString;
Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+26, DM.ConcesionPlantillaXLSColumnaIni+5].Value:=InfoConcesionDatTecnicos.FieldByName('hefecm').AsString;

if InfoConcesionDatTecnicos.FieldByName('balizamiento').AsInteger = 0
Then Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+24, DM.ConcesionPlantillaXLSColumnaIni+8].Value:= 'No'
Else Excel.Cells[DM.ConcesionPlantillaXLSFilaIni+24, DM.ConcesionPlantillaXLSColumnaIni+8].Value:= 'Si';



---------------FIN PRIMERA PARTE -------------

Un saludo
Ramiro
Responder Con Cita
  #3  
Antiguo 01-06-2004
rpadin rpadin is offline
Miembro
 
Registrado: ene 2004
Posts: 47
Poder: 0
rpadin Va por buen camino
Tengo un ejemplo completo (II)

Buenos días.

Tengo un ejemplo completo, pero como no me lo deja insertar todo de una vez te lo divido en dos

---------------INICIO SEGUNDA PARTE -------------

//Accionistas
if InfoConcesionAccionistas.FindFirst
Then
Begin
InfoConcesionAccionistas.First;
nome_columna_1:= DameColumnaExcel(DM.ConcesionPlantillaXLSColumnaIni+2);
nome_columna_2:= DameColumnaExcel(DM.ConcesionPlantillaXLSColumnaIni+2+6);
fila:= DM.ConcesionPlantillaXLSFilaIni+5;
while not InfoConcesionAccionistas.Eof do
Begin
Excel.Sheets[2].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+2].RowHeight:= Excel.Sheets[3].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+2].RowHeight*2;
Excel.Sheets[2].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+2].WrapText:= true;

try
Excel.Sheets[2].Cells.Range[nome_columna_1+IntToStr(fila),nome_columna_2+IntToStr(Fila)].Merge;
except
End;

Excel.Sheets[2].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+1].Value:= InfoConcesionAccionistas.FieldByName('porcentaje').AsString;
Excel.Sheets[2].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+2].Value:= InfoConcesionAccionistas.FieldByName('Accionista').AsString;
fila:= fila+1;
InfoConcesionAccionistas.Next;
End;
End;

//Incidencias
if InfoConcesionIncidencias.FindFirst
Then
Begin
InfoConcesionIncidencias.First;
fila:= DM.ConcesionPlantillaXLSFilaIni+5;
nome_columna_1:= DameColumnaExcel(DM.ConcesionPlantillaXLSColumnaIni+2);
nome_columna_2:= DameColumnaExcel(DM.ConcesionPlantillaXLSColumnaIni+2+6);

while not InfoConcesionIncidencias.Eof do
Begin
Excel.Sheets[3].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+2].RowHeight:= Excel.Sheets[3].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+2].RowHeight*3;
Excel.Sheets[3].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+2].WrapText:= true;

try
Excel.Sheets[3].Cells.Range[nome_columna_1+IntToStr(fila),nome_columna_2+IntToStr(Fila)].Merge;
except
End;

Excel.Sheets[3].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+1].Value:= InfoConcesionIncidencias.FieldByName('fecha').AsString;
Excel.Sheets[3].Cells[fila, DM.ConcesionPlantillaXLSColumnaIni+2].Value:= InfoConcesionIncidencias.FieldByName('descripcion').AsString;
fila:= fila+1;
InfoConcesionIncidencias.Next;
End;
End;

InfoConcesion.Next;
End;
except
Excel.Quit;
showmessage('No se pudo crear el Objecto Excel.');
InfoConcesion.Close;
raise;
end;
if creado
Then Excel.ActiveWorkbook.saveas(Arquivo);
Excel.quit;

End
Else showmessage('No se pudo realizar la exportación a un fichero Excel'+#13+'porque no se ha indicado un nombre para el fichero de destino');
End
Else showmessage('No se pudo realizar la exportación a un fichero Excel'+#13+'porque no se han encontrado datos.');
InfoConcesionDatTecnicos.Close;
InfoConcesionIncidencias.Close;
InfoConcesionAccionistas.Close;
InfoConcesion.Close;
end;

---------------FIN SEGUNDA PARTE -------------

Un saludo
Ramiro
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


La franja horaria es GMT +2. Ahora son las 11:15:51.


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