231 lines
5.2 KiB
Plaintext
Executable File
231 lines
5.2 KiB
Plaintext
Executable File
create or replace package xlsx_builder_pkg
|
|
as
|
|
/**********************************************
|
|
**
|
|
** Author: Anton Scheffer
|
|
** Date: 19-02-2011
|
|
** Website: http://technology.amis.nl/blog
|
|
** See also: http://technology.amis.nl/blog/?p=10995
|
|
**
|
|
** Changelog:
|
|
** Date: 21-02-2011
|
|
** Added Aligment, horizontal, vertical, wrapText
|
|
** Date: 06-03-2011
|
|
** Added Comments, MergeCells, fixed bug for dependency on NLS-settings
|
|
** Date: 16-03-2011
|
|
** Added bold and italic fonts
|
|
** Date: 22-03-2011
|
|
** Fixed issue with timezone's set to a region(name) instead of a offset
|
|
** Date: 08-04-2011
|
|
** Fixed issue with XML-escaping from text
|
|
**
|
|
******************************************** */
|
|
--
|
|
type tp_alignment is record
|
|
( vertical varchar2(11)
|
|
, horizontal varchar2(16)
|
|
, wrapText boolean
|
|
);
|
|
--
|
|
procedure clear_workbook;
|
|
--
|
|
procedure new_sheet( p_sheetname varchar2 := null );
|
|
--
|
|
function OraFmt2Excel( p_format varchar2 := null )
|
|
return varchar2;
|
|
--
|
|
function get_numFmt( p_format varchar2 := null )
|
|
return pls_integer;
|
|
--
|
|
function get_font
|
|
( p_name varchar2
|
|
, p_family pls_integer := 2
|
|
, p_fontsize number := 11
|
|
, p_theme pls_integer := 1
|
|
, p_underline boolean := false
|
|
, p_italic boolean := false
|
|
, p_bold boolean := false
|
|
)
|
|
return pls_integer;
|
|
--
|
|
function get_fill
|
|
( p_patternType varchar2
|
|
, p_fgRGB varchar2 := null -- this is a hex ALPHA Red Green Blue value
|
|
)
|
|
return pls_integer;
|
|
--
|
|
function get_border
|
|
( p_top varchar2 := 'thin'
|
|
, p_bottom varchar2 := 'thin'
|
|
, p_left varchar2 := 'thin'
|
|
, p_right varchar2 := 'thin'
|
|
)
|
|
/*
|
|
none
|
|
thin
|
|
medium
|
|
dashed
|
|
dotted
|
|
thick
|
|
double
|
|
hair
|
|
mediumDashed
|
|
dashDot
|
|
mediumDashDot
|
|
dashDotDot
|
|
mediumDashDotDot
|
|
slantDashDot
|
|
*/
|
|
return pls_integer;
|
|
--
|
|
function get_alignment
|
|
( p_vertical varchar2 := null
|
|
, p_horizontal varchar2 := null
|
|
, p_wrapText boolean := null
|
|
)
|
|
/* horizontal
|
|
center
|
|
centerContinuous
|
|
distributed
|
|
fill
|
|
general
|
|
justify
|
|
left
|
|
right
|
|
*/
|
|
/* vertical
|
|
bottom
|
|
center
|
|
distributed
|
|
justify
|
|
top
|
|
*/
|
|
return tp_alignment;
|
|
--
|
|
procedure cell
|
|
( p_col pls_integer
|
|
, p_row pls_integer
|
|
, p_value number
|
|
, p_numFmtId pls_integer := null
|
|
, p_fontId pls_integer := null
|
|
, p_fillId pls_integer := null
|
|
, p_borderId pls_integer := null
|
|
, p_alignment tp_alignment := null
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure cell
|
|
( p_col pls_integer
|
|
, p_row pls_integer
|
|
, p_value varchar2
|
|
, p_numFmtId pls_integer := null
|
|
, p_fontId pls_integer := null
|
|
, p_fillId pls_integer := null
|
|
, p_borderId pls_integer := null
|
|
, p_alignment tp_alignment := null
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure cell
|
|
( p_col pls_integer
|
|
, p_row pls_integer
|
|
, p_value date
|
|
, p_numFmtId pls_integer := null
|
|
, p_fontId pls_integer := null
|
|
, p_fillId pls_integer := null
|
|
, p_borderId pls_integer := null
|
|
, p_alignment tp_alignment := null
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure hyperlink
|
|
( p_col pls_integer
|
|
, p_row pls_integer
|
|
, p_url varchar2
|
|
, p_value varchar2 := null
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure comment
|
|
( p_col pls_integer
|
|
, p_row pls_integer
|
|
, p_text varchar2
|
|
, p_author varchar2 := null
|
|
, p_width pls_integer := 150 -- pixels
|
|
, p_height pls_integer := 100 -- pixels
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure mergecells
|
|
( p_tl_col pls_integer -- top left
|
|
, p_tl_row pls_integer
|
|
, p_br_col pls_integer -- bottom right
|
|
, p_br_row pls_integer
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure set_column_width
|
|
( p_col pls_integer
|
|
, p_width number
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure set_column
|
|
( p_col pls_integer
|
|
, p_numFmtId pls_integer := null
|
|
, p_fontId pls_integer := null
|
|
, p_fillId pls_integer := null
|
|
, p_borderId pls_integer := null
|
|
, p_alignment tp_alignment := null
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure set_row
|
|
( p_row pls_integer
|
|
, p_numFmtId pls_integer := null
|
|
, p_fontId pls_integer := null
|
|
, p_fillId pls_integer := null
|
|
, p_borderId pls_integer := null
|
|
, p_alignment tp_alignment := null
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure freeze_rows
|
|
( p_nr_rows pls_integer := 1
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure freeze_cols
|
|
( p_nr_cols pls_integer := 1
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
procedure set_autofilter
|
|
( p_column_start pls_integer := null
|
|
, p_column_end pls_integer := null
|
|
, p_row_start pls_integer := null
|
|
, p_row_end pls_integer := null
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
function finish
|
|
return blob;
|
|
--
|
|
procedure save
|
|
( p_directory varchar2
|
|
, p_filename varchar2
|
|
);
|
|
--
|
|
procedure query2sheet
|
|
( p_sql varchar2
|
|
, p_column_headers boolean := true
|
|
, p_directory varchar2 := null
|
|
, p_filename varchar2 := null
|
|
, p_sheet pls_integer := null
|
|
);
|
|
--
|
|
|
|
end xlsx_builder_pkg;
|
|
/
|
|
|