Creating Excel File in Oracle Forms
Below is the example to create an excel file in Oracle Forms.
Pass the Sql query string to the below procedure to generate an Excel file using Ole2 package.
PROCEDURE Create_Excel_File (CSQL Varchar2)
Is
source_cursor Integer;
l_colCnt Number Default 0;
l_descTbl Dbms_sql.desc_tab;
newval1 Varchar2 (4000);
application OLE2.OBJ_TYPE;
workbooks OLE2.OBJ_TYPE;
workbook OLE2.OBJ_TYPE;
worksheets OLE2.OBJ_TYPE;
worksheet OLE2.OBJ_TYPE;
colour OLE2.OBJ_TYPE;
cell OLE2.OBJ_TYPE;
RANGE OLE2.OBJ_TYPE;
range_col OLE2.OBJ_TYPE;
range_row OLE2.OBJ_TYPE;
args OLE2.LIST_TYPE;
rows_processed Number;
row_n Number;
VAL Varchar2 (100);
x Number;
filename Varchar2 (200);
BEGIN
BEGIN
source_cursor := Dbms_Sql.open_Cursor;
Dbms_Sql.parse (source_cursor, cSql, 2);
Dbms_Sql.describe_Columns (c => source_cursor, col_cnt => l_colCnt, desc_t => l_descTbl);
EXCEPTION
When Others
Then
Error_Message (SQLERRM);
RETURN;
END;
application := OLE2.CREATE_OBJ ('Excel.Application');
OLE2.SET_PROPERTY (application, 'Visible', 'False');
workbooks := OLE2.GET_OBJ_PROPERTY (application, 'Workbooks');
workbook := OLE2.GET_OBJ_PROPERTY (workbooks, 'Add');
worksheets := OLE2.GET_OBJ_PROPERTY (workbook, 'Worksheets');
args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG (args, 1);
worksheet := OLE2.GET_OBJ_PROPERTY (worksheets, 'Item', args);
OLE2.DESTROY_ARGLIST (args);
For T In 1 .. l_colCnt
LOOP
BEGIN
Dbms_Sql.define_Column (source_cursor, T, newval1, 4000);
args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG (args, 1);
OLE2.ADD_ARG (args, T); --Next column
cell := OLE2.GET_OBJ_PROPERTY (worksheet, 'Cells', args);
OLE2.DESTROY_ARGLIST (args);
colour := ole2.get_obj_property (cell, 'Borders');
ole2.set_property (colour, 'ColorIndex', 1);
ole2.Release_obj (colour);
colour := ole2.get_obj_property (cell, 'Interior');
ole2.set_property (colour, 'ColorIndex', 15);
ole2.Release_obj (colour);
OLE2.SET_PROPERTY (cell, 'Value', l_descTbl (T).col_name);
OLE2.Release_obj (cell);
EXCEPTION
When Others
Then
Null;
END;
END LOOP;
Rows_processed := Dbms_Sql.EXECUTE (source_cursor);
row_n := 1;
LOOP
IF Dbms_Sql.fetch_Rows (source_cursor) > 0
Then
For T In 1 .. l_colCnt
LOOP
BEGIN
Dbms_Sql.column_Value (source_cursor, T, newval1);
args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG (args, row_n + 1);
OLE2.ADD_ARG (args, T); --Next column
cell := OLE2.GET_OBJ_PROPERTY (worksheet, 'Cells', args);
OLE2.DESTROY_ARGLIST (args);
colour := ole2.get_obj_property (cell, 'Borders');
ole2.set_property (colour, 'ColorIndex', 1);
ole2.Release_obj (colour);
OLE2.SET_PROPERTY (cell, 'Value', newval1);
OLE2.Release_obj (cell);
EXCEPTION
When Others
Then
EXIT;
END;
newval1 := Null;
END LOOP;
Else
EXIT;
END IF;
row_n := row_n + 1;
END LOOP;
Dbms_Sql.close_Cursor (source_cursor);
-- Autofit columns
RANGE := OLE2.GET_OBJ_PROPERTY (worksheet, 'UsedRange');
range_col := OLE2.GET_OBJ_PROPERTY (RANGE, 'Columns');
range_row := OLE2.GET_OBJ_PROPERTY (RANGE, 'Rows');
OLE2.INVOKE (range_col, 'AutoFit');
OLE2.INVOKE (range_row, 'AutoFit');
OLE2.Release_obj (RANGE);
OLE2.Release_obj (range_col);
OLE2.Release_obj (range_row);
-- Get filename and path
filename := 'Yourexcel.xls';
-- Save as worksheet
IF Nvl (filename, '0') <> '0'
Then
OLE2.SET_PROPERTY (application, 'Visible', 'True');
args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG (args, filename);
OLE2.INVOKE (worksheet, 'SaveAs', args);
OLE2.DESTROY_ARGLIST (args);
END IF;
-- OLE2.INVOKE( workbook ,'Close');
OLE2.Release_obj (worksheet);
OLE2.Release_obj (worksheets);
OLE2.Release_obj (workbook);
OLE2.Release_obj (workbooks);
OLE2.Release_obj (application);
END;
Download demo form from the following link Generate Excel Report
Creating Excel File in Oracle Forms的更多相关文章
- Formatting Excel File Using Ole2 In Oracle Forms
Below is the some useful commands of Ole2 to format excel file in Oracle Forms.-- Change font size a ...
- Create Hierarchical Tree To Control Records In Oracle Forms
Download Source Code Providing an example form for creating hierarchical trees in Oracle Forms to co ...
- Changing Icon File Of Push Button At Runtime In Oracle Forms 6i
Set Icon_File property in When-Mouse-Enter trigger Suppose you are creating icon based menu system i ...
- Freebie - Utility Form: Generate Excel Report From SQL Query In Oracle Forms 6i And 11g
Sharing a form to generate Excel file report from SQL query in Oracle Forms. This form can be used i ...
- Writing Text File From A Tabular Block In Oracle Forms
The example given below for writing text file or CSV using Text_IO package from a tabular block in O ...
- Creating, Stopping, Re-Starting and Deleting a Timer in Oracle Forms
I have written many posts previously on Timers in Oracle Forms like how to change images randomly wi ...
- Creating Custom Login Screen In Oracle Forms 10g
Below is the example plsql unit to validate login credentials and after successful validation open a ...
- Creating Dynamic LOV in Oracle D2k Forms
Dynamic Lov is a good idea for the form where too many Lov requirement is there with different recor ...
- Oracle Forms 10g Tutorial Ebook Download - Oracle Forms Blog
A step by step tutorial for Oracle Forms 10g development. This guide is helpful for freshers in Orac ...
随机推荐
- zw版【转发·台湾nvp系列Delphi例程】HALCON SetGray
zw版[转发·台湾nvp系列Delphi例程]HALCON SetGray SetGray_Delphi.PNG unit Unit1;interfaceuses Windows, Messages, ...
- 什么是BI【转】
产品与服务 - 商务智能 目前,商业智能产品及解决方案大致可分为数据仓库产品.数据抽取产品.OLAP产品.展示产品.和集成以上几种产品的针对某个应用的整体解决方案 商业智能是什么? 简而言之, ...
- 解决 “invalid resource directory name”, resource “crunch”
try this: from the menu click Project->Clean... a popup window will appear. select the check ...
- shell 条件测试语句三种方法
1.test -f file 2.[ -f file ] 3.[[ -f file ]] [ -f file1 -a -f file2]逻辑与[ -f file1 -o -f file2]逻辑或 [ ...
- NEON简介【转】
转自:http://blog.csdn.net/fengbingchun/article/details/38020265 版权声明:本文为博主原创文章,未经博主允许不得转载. “ARM Advanc ...
- ctl 里面pdef解说
WRF 模式MM5 模式都是目前从网上可以下载的气象软件,因此在国内经常可以见到.但这两种模式的数据特点数据的水平网格都不是标准的经纬度网格.需要在ctl 文件中加入PDEF 定义说明把这种非标准的数 ...
- 很好用的查看音频波形的软件cool edit pro
- 发送xml报文去第三方请求获取xml报文数据
import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import j ...
- Java 中日期的几种常见操作 —— 取值、转换、加减、比较
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿.当然,我只提 ...
- sass初步认识1
sass是一种“css预处理器”,同类的还有less等,方法类似.css预处理器的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的css文件. 使用sass需要先暗转RUBY,再 ...