如何在从 Oracle Forms Builder 打开 Excel 文件时循环遍历所有 Excel 工作表?

问题描述 投票:0回答:1

我想在 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------------------

谢谢!

excel oracle ole oracleforms
1个回答
1
投票

我更换了

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);  

现在工作正常了!

© www.soinside.com 2019 - 2024. All rights reserved.