|
1 | 1 | -- see http://technology.amis.nl/blog/10995/create-an-excel-file-with-plsql |
2 | 2 |
|
3 | 3 | begin |
| 4 | + xlsx_builder_pkg.clear_workbook; |
4 | 5 | xlsx_builder_pkg.new_sheet; |
5 | 6 | xlsx_builder_pkg.cell( 5, 1, 5 ); |
6 | 7 | xlsx_builder_pkg.cell( 3, 1, 3 ); |
7 | 8 | xlsx_builder_pkg.cell( 2, 2, 45 ); |
8 | 9 | xlsx_builder_pkg.cell( 3, 2, 'Anton Scheffer', p_alignment => xlsx_builder_pkg.get_alignment( p_wraptext => true ) ); |
9 | | - xlsx_builder_pkg.cell( 1, 4, sysdate ); |
| 10 | + xlsx_builder_pkg.cell( 1, 4, sysdate, p_fontId => xlsx_builder_pkg.get_font( 'Calibri', p_rgb => 'FFFF0000' ) ); |
10 | 11 | xlsx_builder_pkg.cell( 2, 4, sysdate, p_numFmtId => xlsx_builder_pkg.get_numFmt( 'dd/mm/yyyy h:mm' ) ); |
11 | 12 | xlsx_builder_pkg.cell( 3, 4, sysdate, p_numFmtId => xlsx_builder_pkg.get_numFmt( xlsx_builder_pkg.orafmt2excel( 'dd/mon/yyyy' ) ) ); |
12 | 13 | xlsx_builder_pkg.cell( 5, 5, 75, p_borderId => xlsx_builder_pkg.get_border( 'double', 'double', 'double', 'double' ) ); |
|
33 | 34 | end; |
34 | 35 | / |
35 | 36 |
|
| 37 | +-- Create an Excel file with validation |
| 38 | +begin |
| 39 | + xlsx_builder_pkg.clear_workbook; |
| 40 | + xlsx_builder_pkg.new_sheet; |
| 41 | + xlsx_builder_pkg.cell( 1, 6, 5 ); |
| 42 | + xlsx_builder_pkg.cell( 1, 7, 3 ); |
| 43 | + xlsx_builder_pkg.cell( 1, 8, 7 ); |
| 44 | + xlsx_builder_pkg.new_sheet; |
| 45 | + xlsx_builder_pkg.cell( 2, 6, 15, p_sheet => 2 ); |
| 46 | + xlsx_builder_pkg.cell( 2, 7, 13, p_sheet => 2 ); |
| 47 | + xlsx_builder_pkg.cell( 2, 8, 17, p_sheet => 2 ); |
| 48 | + xlsx_builder_pkg.list_validation( 6, 3, 1, 6, 1, 8, p_show_error => true, p_sheet => 1 ); |
| 49 | + xlsx_builder_pkg.defined_name( 2, 6, 2, 8, 'Anton', 2 ); |
| 50 | + xlsx_builder_pkg.list_validation |
| 51 | + ( 6, 1, 'Anton' |
| 52 | + , p_style => 'information' |
| 53 | + , p_title => 'valid values are' |
| 54 | + , p_prompt => '13, 15 and 17' |
| 55 | + , p_show_error => true |
| 56 | + , p_error_title => 'Are you sure?' |
| 57 | + , p_error_txt => 'Valid values are: 13, 15 and 17' |
| 58 | + , p_sheet => 1 ); |
| 59 | + xlsx_builder_pkg.save( 'MY_DIR', 'my.xlsx' ); |
| 60 | +end; |
| 61 | +/ |
36 | 62 |
|
37 | 63 |
|
| 64 | +begin |
| 65 | + xlsx_builder_pkg.clear_workbook; |
| 66 | + xlsx_builder_pkg.new_sheet; |
| 67 | + xlsx_builder_pkg.cell( 1, 6, 5 ); |
| 68 | + xlsx_builder_pkg.cell( 1, 7, 3 ); |
| 69 | + xlsx_builder_pkg.cell( 1, 8, 7 ); |
| 70 | + xlsx_builder_pkg.set_autofilter( 1,1, p_row_start => 5, p_row_end => 8 ); |
| 71 | + xlsx_builder_pkg.new_sheet; |
| 72 | + xlsx_builder_pkg.cell( 2, 6, 5 ); |
| 73 | + xlsx_builder_pkg.cell( 2, 7, 3 ); |
| 74 | + xlsx_builder_pkg.cell( 2, 8, 7 ); |
| 75 | + xlsx_builder_pkg.set_autofilter( 2,2, p_row_start => 5, p_row_end => 8 ); |
| 76 | + xlsx_builder_pkg.save( 'MY_DIR', 'my.xlsx' ); |
| 77 | +end; |
| 78 | +/ |
| 79 | + |
| 80 | +-- Create workbook with frozen cells |
| 81 | +begin |
| 82 | + xlsx_builder_pkg.clear_workbook; |
| 83 | + xlsx_builder_pkg.new_sheet; |
| 84 | + for c in 1 .. 10 |
| 85 | + loop |
| 86 | + xlsx_builder_pkg.cell( c, 1, 'COL' || c ); |
| 87 | + xlsx_builder_pkg.cell( c, 2, 'val' || c ); |
| 88 | + xlsx_builder_pkg.cell( c, 3, c ); |
| 89 | + end loop; |
| 90 | + xlsx_builder_pkg.freeze_rows( 1 ); |
| 91 | + xlsx_builder_pkg.new_sheet; |
| 92 | + for r in 1 .. 10 |
| 93 | + loop |
| 94 | + xlsx_builder_pkg.cell( 1, r, 'ROW' || r ); |
| 95 | + xlsx_builder_pkg.cell( 2, r, 'val' || r ); |
| 96 | + xlsx_builder_pkg.cell( 3, r, r ); |
| 97 | + end loop; |
| 98 | + xlsx_builder_pkg.freeze_cols( 3 ); |
| 99 | + xlsx_builder_pkg.new_sheet; |
| 100 | + xlsx_builder_pkg.cell( 3, 3, 'Start freeze' ); |
| 101 | + xlsx_builder_pkg.freeze_pane( 3,3 ); |
| 102 | + xlsx_builder_pkg.save( 'MY_DIR', 'my.xlsx' ); |
| 103 | +end; |
| 104 | +/ |
0 commit comments