我想在 Oracle 表单中的 Client_OLE2 的帮助下读取 Excel 文件。 如果 excel 只有一张工作表,我可以成功做到这一点,因为该工作表是活动工作表,但如果我的 excel 中有几张工作表,我将无法读取所需的工作表。
----------------Get the file to open ---------------------------
v_fName := :upload.ti_file_name_upload;
IF ( v_fName IS NOT NULL ) THEN
clear_form ( no_validate );
--------------INITIATE EXCEL APPLICATION---------------------------
application := client_OLE2.create_obj('Excel.Application');
client_OLE2.set_property(application,'Visible', 'false');
----------------GET WORKBOOKS FROM EXCEL APPLICATION---------------
workbooks := client_OLE2.Get_Obj_Property(application, 'Workbooks');
----------------OPEN REQUIRED WORKBOOK-----------------------------
args := client_OLE2.CREATE_ARGLIST;
client_OLE2.add_arg(args,v_fName);
workbook := client_OLE2.GET_OBJ_PROPERTY(workbooks,'Open',args);
client_OLE2.destroy_arglist(args);
----------------OPEN REQUIRED WORKSHEET----------------------------
worksheets := client_OLE2.GET_OBJ_PROPERTY(workbook, 'Worksheets');
worksheet := client_OLE2.GET_OBJ_PROPERTY(application,'activesheet');
----------------Specify columns that must be read------------------
谢谢!
我更换了
worksheets := CLIENT_OLE2.GET_OBJ_PROPERTY(workbook, 'Worksheets');
worksheet := CLIENT_OLE2.GET_OBJ_PROPERTY(application,'activesheet');
与
args:= CLIENT_OLE2.create_arglist;
CLIENT_OLE2.add_arg(args, 'Sheet Name');
worksheet := CLIENT_OLE2.GET_OBJ_PROPERTY(workbook, 'Sheets', args);
CLIENT_OLE2.destroy_arglist(args);
现在工作正常了!