Hola:
Para la importacion e importacion de datos te recomendaria utilizar Excel dado que como funciona como una tabla te sera mas facil el tratamiento de estos procesos.
Para la exportacion debes crear un procedimiento almacenado que te devuelva los datos de la empresa que va a exportar y de ahi llenas la hoja de Excel y luego creas otro procedimiento almacenado para insertar esos datos el cual leera los datos de la hoja de Excel.
Te dare algun codigo con una muestras.
Para importar
Código:
procedure TFormMenu.Productos2Click(Sender: TObject);
var
j: Integer;
begin
try
Excel := CreateOleObject('Excel.Application');
except
Excel.Quit;
showmessage('No se pudo crear el Objecto Excel.');
raise;
end;
if OpenDialogXls.Execute then Archivo:= OpenDialogXls.FileName
else exit;
Excel.Workbooks.Open(Archivo);
j:= 2;
try
repeat
with InsertarProductos do
begin
Close;
Parameters.ParamByName('@codplu').Value:= Excel.Cells[j,1].Value;
Parameters.ParamByName('@codtrasval').Value:= Excel.Cells[j,2].Value;
Parameters.ParamByName('@codfabricante').Value:= Excel.Cells[j,3].Value;
Prepared:= True;
ExecProc;
end;
inc(j);
until Excel.Cells[j,2].Value = '';
Excel.quit;
ShowMessage(' El fichero de productos ha sido importado exitosamente');
except
ShowMessage(' !!!!! ATENCION !!!!! ' + chr(13) +
' El fichero no pudo ser importado' + chr(13) +
' Revise bien su estructura');
end;
end;
Para exportar
Código:
procedure TFormMenu.otal4Click(Sender: TObject);
var
Excel, Libro: Variant;
i: integer;
begin
Excel:=CreateOleObject('Excel.Application');
Excel.Visible := False;
Excel.DisplayAlerts:= False;
Excel.WorkBooks.Add('C:\Archivos de programa\Tienda\Inventario.xlt');
Excel.WorkBooks[1].WorkSheets[1].Name := 'Productos';
Libro := Excel.WorkBooks[1].WorkSheets['Productos'];
with Inventario do
begin
Close;
Open;
end;
try
Inventario.First;
i:= 2;
while not (Inventario.Eof) do
begin
Libro.Cells [i,1] := InventarioCodTrasval.Value;
Libro.Cells [i,2] := InventarioDescripcionPLU.Value;
Libro.Cells [i,3] := Inventariopreciocosto.Value;
inc(i);
Inventario.Next;
end;
Libro.SaveAs('C:\Archivos de programa\Tienda\Inventario actualizado');
ShowMessage(' El fichero Inventario actualizado.xls ha sido creado exitosamente');
Excel.Quit;
except
ShowMessage(' El fichero no pudo ser creado');
Excel.Quit;
end;
end;
Para la exportacion te recomiendo que trabajes con una plantilla de Excel porque te ahorraras el problema de tener que darle formato a los datos. Otra cosa que debes tener en cuenta es que en el uses de la Unit debes incluir Excel97, ComObj.
Espero que te sirva.
Saludos
Luis Garcia
_____________________________
La mejor manera de decir es hacer