Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Como se crea un fichero XLS desde Delphi y paleta Servers (https://www.clubdelphi.com/foros/showthread.php?t=703)

roman 28-04-2004 17:04:09

Cita:

Empezado por candido
me pregunta si quiero grabar o no el libro excel, quisiera cerrar pero sin grabar

Intenta con

Código Delphi [-]
ExcelApplication.DisplayAlerts[0] := false;

// Saludos

candido 30-04-2004 10:28:39

muchas gracias Roman, pero esta opcion no me vale porque no uso el objeto de delphi ExcelApplication, si no que lo creo mas o menos asi

---------------------------
Código Delphi [-]
     try
        XL := GetActiveOleObject('Excel.Application');
        //XL := GetActiveOleObject(DirBaseDatos + '\Plantillas\Etiquetas\etiquetas.xls');
     except
       XL := CreateOLEObject('Excel.Application');     // Ole object creation
       //XL := CreateOLEObject(DirBaseDatos + '\Plantillas\Etiquetas\etiquetas.xls');
     end;
     //XL.WorkBooks.add;
     if Ruta <> '' then
       XL.WorkBooks.open(Ruta)
     else
     XL.WorkBooks.add;     
     //XL.visible:=true;
     XL.visible:=False;

     j := 1;
     i := 0;
     while i < NoCampos do
     begin
        XArr[i+1]:=EXQuery.Fields[i].DisplayLabel;
        i := i+1;
        EXQuery.Next;
     end;
     XL.Range['A'+IntToStr(j),
     CHR(64+NoCampos)+IntToStr(j)].Value := XArr;

     XL.Range['A1',CHR(64+NoCampos)+IntToStr(j)].select;
     XL.Selection.Font.Name:='Times New Roman';
     XL.Selection.Font.Size:=10;
     XL.Selection.Font.color := clblue;
     XL.Selection.Font.bold := true;
     XL.Selection.Font.underline := true;


     j := 3;
     EXQuery.First;
     while not EXQuery.Eof do
     begin
       i:=1;
       while i<=NoCampos do
       begin
             XArr[i] := EXQuery.Fields[i-1].Value;
             i := i+1;
       end;
       XL.Range['A'+IntToStr(j),
         CHR(64+NoCampos)+IntToStr(j)].Value := XArr;
       EXQuery.Next;
       j := j + 1;
     end;
     XL.Range['A1',CHR(64+NoCampos)+IntToStr(j)].select;
     XL.selection.Columns.AutoFit;
     XL.Range['A1','A1'].select;
     XL.Quit;

----------------------

pero al final me pide que si quiero grabar o no, y no se como decirle que me lo grabe directamente

un saludo

roman 30-04-2004 17:17:11

Cita:

Empezado por candido
pero esta opcion no me vale porque no uso el objeto de delphi ExcelApplication

Claro que te vale ya que el objeto TExcelApplication no es más que una encapsulación de la interfaz al objeto ole Excel que es la que describe qué métodos y propiedades tiene. Lo que cambia un poco es la forma de llamarlos. Aquí te pongo un ejemplo:

Código Delphi [-]
uses
  ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
  XL: OleVariant;

begin
  XL := CreateOLEObject('Excel.Application');
  XL.DisplayAlerts := false;
  XL.WorkBooks.Add;
  XL.Cells[1, 1] := 'Hola mundo';
  XL.Quit;
end;

// Saludos

Salomon 03-05-2004 09:50:25

muchas gracias Roman,

ya solo me faltaria, grabar el documento sin preguntar al usuario, ya que esta opcion no pregunta pero tampoco graba, y necesiteria grabar el documento.

de todos mudos muchas gracias.

SEBAC_28 30-12-2004 07:36:25

[quote=Anabel]Hola :)

quizas el siguiente ejemplo te pueda ayudar, es utililizando el componente TExcelAplication, del palette Servers.

Receta:

Ingredientes en delphi:
1)TForm of course
2)TQuery
3)SaveDialog
5)TExcelapplication
6)bitButton
7)dbGrid


procedure TForm1.bbtnExportToExcelClick(Sender: TObject);
var
LineNumber, LCID : Integer;
LineString : string;
begin
with SaveDialog1 do
begin
FileName :='';
Filter:= 'Excel files|*.XLS;All Files|*.*';
DefaultExt := 'XLS';
Title := 'Exporting to Excel';
if execute then
begin
query1.Open;

Estoy teniendo algunos problemitas con lo anterior :
1- porque no declaran las variables: FileName ,Filter,DefaultExt,Title¿seran que son pertenecientes al objeto SaveDialog1?
2- ¿Me tengo que crear en el form los objetos descritos desde 2 a 7 inclusive? de los citados al principio
3- de ser asi lo ejecuto y en la linea query1.Open; se produce una excepcion con el mensaje Query1: No SQL statement available ¿como lo puedo solucionar?
Si alguien me puede dar una mano muy agradecido
Seba

karla 24-07-2006 19:33:49

hola:
Soy nueva en esto asi que no se como funcionan todo, pero bueno Yo estoy haciendo una aplicacion en la que introduzco datos a un documento en excel que tiene varias hojas, yo quisiera saber como moverme para otra hoja que no sea la primera.
Gracias chao

JuanPa1 07-09-2006 16:50:19

Hola Anabel, estoy tratando de exportar un reporte desde delphi a excel y estoy utilizando el codigo que tu expones en el foro, lo que quiero saber es a que corresponde el Query1OrderNo.Value que esta en la siguiente linea y como lo obtengo:
Range['A'+LineString, 'B'+LineString].Value[oleVar] := VarArrayof([Query1OrderNo.value, Query1CustNo.Value]);

Gracias por tu ayuda..
Saludos,
Juan Pablo

JuanPa1 07-09-2006 17:20:07

Hola, ya la resolvi esa parte y ahora quisiera que por favor me expliques el paso 5, antes quiero decirte que yo solo quiero pasarle 2 campos a excel pues la tabla de la base de datos a la cual hago referencia en el Query tiene 2 campos.
//Paso 5
Range['H2','G'+LineString].NumberFormat := '0.00%';
Range['G2','G'+LineString].NumberFormat := '$#,##0.00';
Range['I2','I'+LineString].NumberFormat := '$#,##0.00';
Range['J2','J'+LineString].NumberFormat := '$#,##0.00';
Range['A1','J'+LineString].AutoFormat(xlRangeAutoFormatlist1, true,
true,true,true,true,true);
Range['A1','J'+LineString].Columns.AutoFit;
ActiveWorkbook.SaveAs(FileName,xlNormal, '', '', false, false,
xlNochange,xlUserResolution,False,EmptyParam,EmptyParam,
LCID);

Espero tu pronta respuesta, gracias.
Saludos,
Juan Pablo.

Anabel 08-09-2006 15:29:50

Hola Juan Pablo!

Perdón pero no entiendo cula es la duda que tienes, pordrías ser más especifico.

En las líneas que escribe unicamente se le stá dando formato alas celdas, formato de número.
En ese paso también se da explica el comando para salvar la hoja en la que se está trabajando en excel.

Saludos
Belén

JuanPa1 11-09-2006 17:32:40

Gracias Belen por tu respuesta, ya entendi lo que hace el paso 5.
Ahora tengo un problema en esta linea:
ActiveWorkbook.SaveAs(FileName,xlNormal, '', '', false, false,xlNochange,xlUserResolution,False,EmptyParam,EmptyParam,LCID);

La aplicacion no me ejecuta y me sale este error:
Not enough actual parameters

Espero me sepas dar una idea de lo que puede estar pasando, gracias.
Saludos,
Juan Pablo.

dec 11-09-2006 17:45:33

Hola,

Cita:

Empezado por Juan
Not enough actual parameters

Ese error indica que no se están proporcionando todos los parámetros necesarios (en este caso al método "SaveAs"). Ignoro ahora mismo si además puede tratarse de que se estén proporcionando parámetros demás, e incluso de que los parámetros no sean correctos, pero, creo que esto último se indica de otra manera, con otro mensaje de error, quiero decir.

Edito: efectivamente, se trata de lo primero que digo: se están proporcionando menos parámetros de los necesarios. De la ayuda de Delphi:

Cita:

Empezado por Ayuda de Delphi - Error Messages and Warings

Not enough actual parameters

This error message occurs when a call to procedure or function gives less parameters than specified in the procedure or function declaration.

This can also occur for calls to standard procedures or functions.


JuanPa1 11-09-2006 18:29:50

Gracias por tus respuestas, me han ayudado a resolver los problemas que tenia.

ddd_ddd 12-09-2006 20:47:58

hola
 
Ya que se esta en este tema me gustaria saber si hay una manera de guardar el archivo .xls creado en la direccion que yo quiera y si se puede proteger la hoja, todo desde el codigo. Espero me puedan ayudar.:)

JuanPa1 13-09-2006 00:21:05

Hola me podrias ayudar por favor con lo siguiente:
Quiero pasar el resultado de una expresion TQRExpr de delphi a excel:
La expresion es esta:
Sum(if(ADOReportLogin.Answer_Code = 1, ADOReportLogin.Total, 0)).
Como le asigno el resultado de esta expresion a una celda de excel??
Gracias por las sugerencias a mi pregunta..
Saludos,
Juan Pablo.

konnyx2500 11-06-2007 23:23:55

Error "not enough actual parameters"
 
Hola! Alguien sabe como puedo arreglar esto?
Bueno les cuento tengo problemas con el ExcelXP.pas, hace un tiempo he estado compilando una aplicación y nunca tuve problemas con esto, pero hoy cambié una query y la exportacion de datos a excel me falló, he estado leyendo que este error es porque tengo menos parametros que los que necesita la funcion, y aunque ya lo cambié, tendría que cambiar todas las llamadas a esta función desde toda la aplicación... mi pregunta es, por qué esto cambió?? antes tenía estas mismas llamadas con menos parámetros y nunca me tiró ningun error. me da la impresión de que es la versión del ExcelXP, alguien sabe como puedo volver a una versión anterior??

Muchos saludos

mikzero 27-02-2009 13:18:24

Cita:

Empezado por Anabel (Mensaje 4522)

//Paso 1
Range['A1','J1'].Value := VarArrayOf(['Order No',
'Cust No','Sale Date','Emp No',
'Ship Via', 'Terms','Items Total',
'Tax Rate','Freight','Amount Paid']);

Estoy usando DELPHI 2007 y me marca error aki cada vez ke compilo me marca EXPECTEC '[' ya cheke si no me faltaba cerrar o abrir algun corchete, parentesis o punto y coma

estoy tratando de hacer una aplicacion para de un IBOquery1 mandar la informacion a un archivo de EXCEL, me podrian ayudar por favor. :rolleyes:

santiago14 03-08-2023 19:47:22

Cita:

Empezado por delphi.com.ar (Mensaje 2755)
Si no querés que Delphi inicie Excel para generar un archivo, porque no sabés si en las máquinas donde vas a instalar tu aplicación tienen Excel o tienen otra versión, te recomiendo utilizar unos componentes que yo hice, los podes bajar de delphi.com.ar.
La ventaja de estos componentes es que no importa si el cliente tiene instalado Excel o su versión, y además son mucho mas veloces.


Buenas. Resulta que tengo un problema con esto. Hay máquinas que no tienen excel instalado y necesito que se genere un archivo .xls. Y no puedo hacerlo.
Encontré que en esta página había una herramienta que te permitía hacerlo sin tenerlo instalado. Pero ya no existe. ¿Dónde puedo encontrarlo ahora?

Gracias.

Neftali [Germán.Estévez] 04-08-2023 08:29:39

Cita:

Empezado por santiago14 (Mensaje 552251)
Encontré que en esta página había una herramienta que te permitía hacerlo sin tenerlo instalado. Pero ya no existe. ¿Dónde puedo encontrarlo ahora?

Si te refieres a los componentes "Export Suite" de Federico Firence, con su permiso y tirando de WayBackMachine, los he subido al FTP del ClubDelphi.

Los tienes aqui.



También he visto que en Torry Delphi Pages, todavía están disponibles.


La franja horaria es GMT +2. Ahora son las 10:55:31.

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