
almacenar datos en una plantilla de de excel
#1
Posted 22 July 2014 - 07:18 AM
#3
Posted 22 July 2014 - 08:11 AM
#4
Posted 22 July 2014 - 09:03 AM
gracias, por los links pero necesito algo free...
Puedes utilizar la unidad Excel2000 que ya viene con Delphi y puedes generar lo que quieras y como quieras en excel.
Saludos
#5
Posted 22 July 2014 - 09:57 AM
#6
Posted 22 July 2014 - 11:03 AM
por favor alguien puede hacerme un ejemplo chiquito... supongamos lo siguiente:
-----------------------------------------------------------
| Tabla de trabajadores |
-----------------------------------------------------------
|No.| Nombre | |
-----------------------------------------------------------
|1 | | |
-----------------------------------------------------------
|2 | | |
-----------------------------------------------------------
|3 | | |
-----------------------------------------------------------
|Total | |
-----------------------------------------------------------
esta tabla ya esta echa en excel y quiero llenarla desde delphi y guardarla en un lugar predeterminado....
#7
Posted 22 July 2014 - 11:08 AM
yo uso delphi xe5, no se donde encontrar esa unit, si me das un norte te lo agradeceria
Las unidades excel son dos excel2000 o excel2010. Puedes utilizar cualquiera de éstos dos depende de la versión de excel que tengas instalado.
unit Unit1; interface uses Vcl.Forms, excel2000, excel2010; //Puedes utilizar cualquiera de éstos dos depende de la versión de excel que tengas instalado. type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form1: TForm1; //Con éstas variables puedes generar lo que quieras, sólo hay que darle una "estudiadita" y listo. XLApp: TExcelApplication; XLWSheet: _WorkSheet; XLRange: ExcelRange; implementation {$R *.dfm} end.
Saludos
#8
Posted 22 July 2014 - 11:17 AM
si no te es mucha molestia creas un formulario con unos edit para cada campo y cuando presiones un boton inserte los datos y otro para borrarlos, toma como ejemplo la tabla de trabajadores q publique...
disculpa la osadia, pero el estudio lo dejo para lueguito, lo dejo para perfeccionar esto...
#9
Posted 22 July 2014 - 12:02 PM
egostar muchisimas gracias, ya q eres el unico q parece estar conectado...
Somos varios los conectados amigo, solo que no todos dominamos el tema.... Saludos.

#10
Posted 22 July 2014 - 12:04 PM

#11
Posted 22 July 2014 - 03:58 PM
En mi caso, abro un archivo de excel, que para el ejemplo se llama "ArchivoExcel.xls", modifico las celdas que requiero, guardo y cierro el archivo. Espero te sea de ayuda

var Excel: TExcelApplication; Hoja: _WorkSheet; begin Reporte := Proyecto.RutaExe + 'ArchivoExcel.xls'; Ruta := ExtractFilePath(Reporte); Archivo := ExtractFileName(Reporte); Excel := TExcelApplication.Create(nil); Excel.ConnectKind:= ckNewInstance; Excel.DisplayAlerts[LOCALE_USER_DEFAULT] := False; Excel.Workbooks.Open( Reporte, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0 ); Excel.Visible[LOCALE_USER_DEFAULT] := False; Hoja := Excel.Worksheets.Item[1] as _WorkSheet; Hoja.Range[Hoja.Cells.Item[1, 2], Hoja.Cells.Item[1, 2]].Value := sValor; Hoja.Range[Hoja.Cells.Item[1, 3], Hoja.Cells.Item[1, 3]].Value := sReco; Hoja.Range[Hoja.Cells.Item[1, 4], Hoja.Cells.Item[1, 4]].Value := sCuenta; Hoja.SaveAs(Ruta+Archivo,xlExcel97_2003,EmptyParam,EmptyParam,false,false, EmptyParam,EmptyParam,EmptyParam,LOCALE_USER_DEFAULT); Excel.Workbooks.Close(LOCALE_USER_DEFAULT); Excel.Quit; Excel.DisplayAlerts[LOCALE_USER_DEFAULT] := True; Excel.Disconnect;
Saludox !

#12
Posted 24 July 2014 - 12:41 PM
yo uso delphio xe5 y la opcion q me da como corecto es Excel.ConnectKind.ckNewInstance; pero cuando compilo me da error...
supongo que las valiables Reporte, Ruta, Archivo son string

#13
Posted 24 July 2014 - 12:52 PM
gracias Fenareth, pero me da error en Excel.ConnectKind:= ckNewInstance;...
yo uso delphio xe5 y la opcion q me da como corecto es Excel.ConnectKind.ckNewInstance; pero cuando compilo me da error...
supongo que las valiables Reporte, Ruta, Archivo son string
El ejemplo está hecho en Delphi 2007, supongo que algo debe cambiar entre ésta versión y la XE5, por eso mencionaba que de todos modos debías adaptarlo.
¿ Ya buscaste el error que te arroja en google ?
Saludox !

#14
Posted 24 July 2014 - 01:06 PM
#15
Posted 24 July 2014 - 01:27 PM
ahora da problema en:
Excel.Workbooks.Open(Reporte, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0);
con un error de no encuentra el parametro actual
#16
Posted 24 July 2014 - 02:24 PM
Saludox !

#17
Posted 24 July 2014 - 02:43 PM
Hoja.Range[Hoja.Cells.Item[1,2], Hoja.Cells.Item[1, 2]].Value := sValor; Hoja.Range[Hoja.Cells.Item[1,3], Hoja.Cells.Item[1, 3]].Value := sReco; Hoja.Range[Hoja.Cells.Item[1,4], Hoja.Cells.Item[1, 4]].Value := sCuenta;
#18
Posted 24 July 2014 - 02:45 PM

Saludox !

#19
Posted 24 July 2014 - 03:01 PM
esto no compila:
Hoja.Range[Hoja.Cells.Item[1,2], Hoja.Cells.Item[1, 2]].Value := sValor;
Hoja.Range[Hoja.Cells.Item[1,3], Hoja.Cells.Item[1, 3]].Value := sReco;
Hoja.Range[Hoja.Cells.Item[1,4], Hoja.Cells.Item[1, 4]].Value := sCuenta;
esto si:
Hoja.Range[Hoja.Cells.Item[1,2], Hoja.Cells.Item[1, 2]];
para que son sValor, sReco y sCuenta.... son variables???
#20
Posted 24 July 2014 - 03:08 PM
Se entiende del ejemplo de Fenareth que lo que hace es poner en las celdas (1,2), (1,3) y (1,4) los valores de las variables sValor, sReco y sCuenta respectivamente.jajaja si estaba en eso, es q me saca de quisio el cacha ese....
esto no compila:
Hoja.Range[Hoja.Cells.Item[1,2], Hoja.Cells.Item[1, 2]].Value := sValor;
Hoja.Range[Hoja.Cells.Item[1,3], Hoja.Cells.Item[1, 3]].Value := sReco;
Hoja.Range[Hoja.Cells.Item[1,4], Hoja.Cells.Item[1, 4]].Value := sCuenta;
esto si:
Hoja.Range[Hoja.Cells.Item[1,2], Hoja.Cells.Item[1, 2]];
para que son sValor, sReco y sCuenta.... son variables???
Aquí es donde va a variar en tu caso y deberás indicar de donde extraer los datos y en que celdas van. Eso ya depende de una plantilla.
Si dices que no te compila, ¿Que observar si colocas el punto después de cerrar el corchete? Te da alguna sugerencia el editor?
En la versión que utiliza Fenareth existe la propiedad .Value, ¿No aparece en tu caso? Quizá algunos de los cambios de 2007 a 2010 es que ahora ya los datos no se hacen via .Range[].Value sino de otra forma. Por ello te pido que copiar por copiar no lo hagas y vayas observando al poner el punto, que opciones te muestra el editor.
Saludos,