excel - 如何使用 Oracle Forms 获取 Excel 文件的最后一行
问题描述
我正在使用 Oracle Forms 将数据从 Excel 导入数据库表。这是我正在使用的代码:
ligne_fin := 300;
FOR Z in 2..ligne_fin LOOP
ligne:=Z;
v_societe := Excel.get(1,Z,1) ;
v_compte := Excel.get(1,Z,2);
v_Tiers := Excel.get(1,Z,3);
v_section := Excel.get(1,Z,4);
insert into EntrCl (SOCIETE,
COMPTE,
TIERS,
SECTION)
VALUES (v_societe,
v_compte,
v_Tiers,
v_section);
END LOOP
用我的get函数
function GET(FOLIO in NUMBER, prow in number,pcol in number)
RETURN varchar2
is
deger varchar2(800);
Begin
deger:='';
args := OLE2.create_arglist;
OLE2.add_arg (args, FOLIO);
Worksheet:=OLE2.GET_OBJ_PROPERTY(workbook,'Worksheets',args);
args:=OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG(args, prow);
OLE2.ADD_ARG(args, pcol);
cell:=ole2.get_obj_property(worksheet, 'Cells', args);
deger := OLE2.Get_Char_Property(cell, 'Text');
OLE2.RELEASE_OBJ(cell);
OLE2.destroy_arglist (args);
return(deger);
end;
我的问题是我想使用代码自动获取我的 ligne_fin 。我不想硬编码它。
有没有办法使用 PL/SQL 获取 Excel 文件的最后一条记录?
解决方案
检查列是否返回空值以识别最后一行
Z:=2;
While(Excel.get(1,Z,1) is not null)
loop
v_societe := Excel.get(1,Z,1) ;
v_compte := Excel.get(1,Z,2);
v_Tiers := Excel.get(1,Z,3);
v_section := Excel.get(1,Z,4);
insert into EntrCl (SOCIETE,
COMPTE,
TIERS,
SECTION)
VALUES (v_societe,
v_compte,
v_Tiers,
v_section);
Z:=Z+1;
end loop;
推荐阅读
- microsoft-dynamics - ax 2009/2012 开发环境适合自己尝试吗?
- python - 在 n 行之后写入 csv 格式文件的列?
- python-3.x - pandas.Dataframe() 混合数据类型和奇怪的 .fillna() 行为
- c# - 是否可以在 Android 上保持 WebView 音频在后台运行?
- c - 在 C 中显示大双打
- c - fts_read 和 fts_children 不是线程安全的吗?
- c# - 不将小时、分钟和秒识别为有效日期格式的一部分
- javascript - 使用议程时出现 UnhandledPromiseRejectionWarning
- ios - iPhone 6s 上不支持 Unity 的着色器
- c - 什么是处理 strcpy 的返回类型的正确方法