Excel from PL/SQL procedure without any additions.

Procedure receives a select text with runtime parameters and creates Excel file.

Hint language used in select text

VAR/*! VAR CHAR|NUMBER|DATE|AS_IS [Date Format] {SQL expression} ; !*/
Define variable
BEFORE/*! BEFORE {PL/SQL block}; !*/
Execute PL/SQL block before query
AFTER/*! AFTER {PL/SQL block};!*/
Execute PL/SQL block after query
EXPR/*! EXPR CHAR|NUMBER|AS_IS {SQL expression};!*/
Put on this place expression result
IS_NULL/*! IS_NULL :parameter [{]string [}]; !*/
If :parameter is null put on this place {string}
IS_NOT_NULL/*! IS_NOT_NULL :parameter [{]string [}]; !*/
If :parameter is not null put on this place {string}
IIF_EXPR/*! IIF_EXPR [{] boolean expression [}] {string if TRUE} [{]string if FALSE [}]; !*/
If boolean expression is true put on this place {string if TRUE} else {string if FALSE}
TITLE/*! TITLE Columns count [{]Title [}]; !*/
Define super title for a few columns
ALIAS/*! ALIAS FieldName [{]Alias [}]; !*/
Define column title different from column name
IF_CONTINUE/*! IF_CONTINUE [{SQL expression [}]; !*/
Check {SQL expression} and if one is not null to break execution
BOTTOM_SUM/*! BOTTOM_SUM [{] Total row title [}] B […]; !*/
Place summary formulas on bottom of columns
ROW_SUM/*! ROW_SUM [{] Total column title [}] A [B …]; !*/
Place summary formulas on end of row