![]() |
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 .........................................................................
|
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 |
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 |
La franja horaria es GMT +2. Ahora son las 18:21:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi