de form a excel

ronald
18 de Agosto del 2009
quisiera saber como hago para exportar unos datos de un form a excel y decirle de una vez de que tipo será la columna de excel, numerico, general, fecha....

gracias de antemano.

Marco Villarroel
18 de Agosto del 2009
Primero tienes que cambiar la salida al disco, luego simplemente importas del escell en format sdf

ronald
18 de Agosto del 2009
esto porque hay casos en los que tengo montos muy extensos y me los resume el excel a notacion cientifica, pero cuando le cambio el tipo de formato a la columna de general a numerico, me coloca el monto completo tal cual lo necesito...

Jorge-DBA
18 de Agosto del 2009
Acabo de apoyar a un compañero con un caso muy similar al tuyo, puedes integrar forms con excel con OLE2 de Oracle viene con la integracion de productos una vez que instalaste el Forms Developer.

Te doy unas rutinas de ejemplo: espero que te sean de utilidad.

saludos.

Jorge-DBA

PROCEDURE CREA_EXCELL4 IS
-- VARIABLES MIAS

NUM_LINEA NUMBER:=0;
-- Declare handles to OLE objects
application OLE2.OBJ_TYPE;
workbooks OLE2.OBJ_TYPE;
workbook OLE2.OBJ_TYPE;
--worksheets OLE2.OBJ_TYPE;
worksheet OLE2.OBJ_TYPE;
cell OLE2.OBJ_TYPE;

-- Declare handles to OLE argument lists
args OLE2.LIST_TYPE;
arg_list1 OLE2.LIST_TYPE;

BEGIN
application:=OLE2.CREATE_OBJ('Excel.Application');

workbooks:=OLE2.GET_OBJ_PROPERTY(application, 'Workbooks');
workbook:=OLE2.INVOKE_OBJ(workbooks,'Add');

args:= OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG( args, 'c:test3.xls');
OLE2.INVOKE ( workbook, 'SaveAs', args);
OLE2.DESTROY_ARGLIST( args);

worksheet:=OLE2.GET_OBJ_PROPERTY(workbook, 'Activesheet');

FOR ctr IN (SELECT DISTINCT FOLIO_OPERACION ,
TIPO_OPERACION,
FECHA_VENCIMIENTO
FROM DWH_OPERACION_SWAPS
WHERE I_EMPRESA = 1
AND FECHA_OPERACION= TO_DATE('20-08-2004','DD-MM-YYYY'))
LOOP
NUM_LINEA := NUM_LINEA + 1;
-- Create handle to cell in column 1 of appropriate row in
-- worksheet. (The arguments to the Cells method are the row
-- number and column number of the cell).
args:=OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(args, NUM_LINEA);
OLE2.ADD_ARG(args, 1);
cell:=OLE2.GET_OBJ_PROPERTY(WORKSHEET,'cells',args);
OLE2.DESTROY_ARGLIST(args);

-- Put value of employee name into this cell
OLE2.SET_PROPERTY(cell, 'Value', CTR.FOLIO_OPERACION);
-- Create handle to cell in column 2 of appropriate row in
-- worksheet.
args:=OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(args, NUM_LINEA);
OLE2.ADD_ARG(args, 2);
cell:=OLE2.GET_OBJ_PROPERTY(WORKSHEET,'cells',args);
OLE2.DESTROY_ARGLIST(args);

-- Put value of the employee salary into this cell
OLE2.SET_PROPERTY(cell, 'Value', CTR.TIPO_OPERACION);

-- Create handle to cell in column 2 of appropriate row in
-- worksheet.
args:=OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(args, NUM_LINEA);
OLE2.ADD_ARG(args, 3);
cell:=OLE2.GET_OBJ_PROPERTY(WORKSHEET,'cells',args);
OLE2.DESTROY_ARGLIST(args);

-- Put value of the employee salary into this cell
OLE2.SET_PROPERTY(cell, 'Value', CTR.FECHA_VENCIMIENTO);

END LOOP;
OLE2.SET_PROPERTY(application, 'Visible', 'True');
OLE2.INVOKE(workbook, 'Save');

OLE2.RELEASE_OBJ(cell);
OLE2.RELEASE_OBJ(worksheet);
OLE2.RELEASE_OBJ(workbook);
OLE2.RELEASE_OBJ(workbooks);
-- ole2.Invoke(application, 'Quit');
OLE2.RELEASE_OBJ(application);

END;