PDA

Ver la Versión Completa : delphi crear y usar archivo de excel como db


vroa74
03-02-2012, 16:49:02
buenos dias:
tengo la necesidad de de hacer esta pregunta ya que he tratado de resolverla, he visitado los post y no he hayado nada.
necesito crear una aplicación que guarde información en excel, si no exite el archivo de excel lo cree. mas la verdad no tengo la minima idea de como poder hacer esto. Les agradesco su ayuda ya que la aplicacion que necesito hacer es urgente, y tengo que validar algunos campos adicionales
les agradesco

kapcomx
03-02-2012, 17:00:20
aqui te dejo un ejemplo que hice hace un tiempo haber si te sirve....

en este ejemplo guardo en un archivo excel, en formato csv el resultado de una consulta espero te sirva :cool:


Código Delphi [-] (http://www.clubdelphi.com/foros/#)
var
OutputFile : textFile;
NumFields,i : Integer;
nombrefile : string;
nombreFileE : PChar;
CadenaStr, CadenaFin: string;
begin
with querydesgloce do
begin
close;
sql.clear;
sql.add('SELECT * FROM CAJACHICA');
execSQL;
open;
end;

nombrefile := 'z:\RESPALDOCAJACHICA.CSV';
FileCreate(concat(nombreFile,'.CSV'));
AssignFile(OutputFile,nombrefile);
rewrite(OutputFile);

CadenaFin:='FOLIO, FECHA, DESCRIPCION, INGRESO, EGRESO, FONDO, IVA, AUTORIZA, ENTREGA, RECIBE, NOTA, FACTURA, TIPO, STATUS, FOLIOSER, COMENTARIOS, PROVEEDOR';
WriteLN(OutputFile,CadenaFin,',');
querydesgloce.First;
While not (querydesgloce.Eof) do
begin
CadenaFin:=IntToStr(querydesgloce.FieldValues['FOLIO']);
IF (querydesgloce.FieldValues['FECHA']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + DATETOSTR(querydesgloce.FieldValues['FECHA']);
IF (querydesgloce.FieldValues['DESCRIPCION']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +'NULL'
ELSE
cadenafin := CadenaFin + ',' + (querydesgloce.FieldValues['DESCRIPCION']);
IF (querydesgloce.FieldValues['INGRESO']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + FLOATTOSTR(querydesgloce.FieldValues['INGRESO']);

IF (querydesgloce.FieldValues['EGRESO']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + FLOATTOSTR(querydesgloce.FieldValues['EGRESO']);
IF (querydesgloce.FieldValues['FONDO']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + FLOATTOSTR(querydesgloce.FieldValues['FONDO']);
IF (querydesgloce.FieldValues['IVA']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + FLOATTOSTR(querydesgloce.FieldValues['IVA']);
IF (querydesgloce.FieldValues['AUTORIZA']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + (querydesgloce.FieldValues['AUTORIZA']);
IF (querydesgloce.FieldValues['ENTREGA']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + (querydesgloce.FieldValues['ENTREGA']);
IF (querydesgloce.FieldValues['RECIBE']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + (querydesgloce.FieldValues['RECIBE']);
IF (querydesgloce.FieldValues['NOTA']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + INTTOSTR(querydesgloce.FieldValues['NOTA']);
IF (querydesgloce.FieldValues['FACTURA']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + INTTOSTR(querydesgloce.FieldValues['FACTURA']);
IF (querydesgloce.FieldValues['TIPO']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + (querydesgloce.FieldValues['TIPO']);

IF (querydesgloce.FieldValues['STATUS']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + INTTOSTR(querydesgloce.FieldValues['STATUS']);
IF (querydesgloce.FieldValues['FOLIOSER']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + INTTOSTR(querydesgloce.FieldValues['FOLIOSER']);
IF (querydesgloce.FieldValues['COMENTARIOS']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + (querydesgloce.FieldValues['COMENTARIOS']);

IF (querydesgloce.FieldValues['PROVEEDOR']= NULL) THEN
CadenaFin:= CADENAFIN + ',' +''
ELSE
cadenafin := CadenaFin + ',' + (querydesgloce.FieldValues['PROVEEDOR']);


WriteLN(OutputFile,CadenaFin,',');
querydesgloce.Next;
end;