@ -10,7 +10,7 @@ from xlsxwriter.utility import xl_rowcol_to_cell
from odoo import _ , fields , models
from odoo import _ , fields , models
from odoo.exceptions import UserError
from odoo.exceptions import UserError
_xxx = { }
from .report_xlsx_format import FORMATS , XLS_HEADERS
class ReportXlsxAbstract ( models . AbstractModel ) :
class ReportXlsxAbstract ( models . AbstractModel ) :
@ -79,11 +79,11 @@ class ReportXlsxAbstract(models.AbstractModel):
" font_size " : 8 ,
" font_size " : 8 ,
" font_style " : " I " , # B: Bold, I: Italic, U: Underline
" font_style " : " I " , # B: Bold, I: Italic, U: Underline
}
}
self . xls_headers = { " standard " : " " }
XLS_HEADERS [ " xls_headers " ] = { " standard " : " " }
report_date = fields . Datetime . context_timestamp (
report_date = fields . Datetime . context_timestamp (
self . env . user , datetime . now ( )
self . env . user , datetime . now ( )
) . strftime ( " % Y- % m- %d % H: % M " )
) . strftime ( " % Y- % m- %d % H: % M " )
self . xls_footers = {
XLS_HEADERS [ " xls_footers " ] = {
" standard " : (
" standard " : (
" &L& %(font_size)s & %(font_style)s "
" &L& %(font_size)s & %(font_style)s "
+ report_date
+ report_date
@ -103,6 +103,7 @@ class ReportXlsxAbstract(models.AbstractModel):
border_grey = " #D3D3D3 "
border_grey = " #D3D3D3 "
border = { " border " : True , " border_color " : border_grey }
border = { " border " : True , " border_color " : border_grey }
theader = dict ( border , bold = True )
theader = dict ( border , bold = True )
bg_grey = " #CCCCCC "
bg_yellow = " #FFFFCC "
bg_yellow = " #FFFFCC "
bg_blue = " #CCFFFF "
bg_blue = " #CCFFFF "
num_format = " #,##0.00 "
num_format = " #,##0.00 "
@ -112,411 +113,495 @@ class ReportXlsxAbstract(models.AbstractModel):
int_format = " #,##0 "
int_format = " #,##0 "
int_format_conditional = " {0};[Red]-{0};{0} " . format ( int_format )
int_format_conditional = " {0};[Red]-{0};{0} " . format ( int_format )
date_format = " YYYY-MM-DD "
date_format = " YYYY-MM-DD "
theader_grey = dict ( theader , bg_color = bg_grey )
theader_yellow = dict ( theader , bg_color = bg_yellow )
theader_yellow = dict ( theader , bg_color = bg_yellow )
theader_blue = dict ( theader , bg_color = bg_blue )
theader_blue = dict ( theader , bg_color = bg_blue )
# format for worksheet title
# format for worksheet title
self . format_ws_title = workbook . add_format ( { " bold " : True , " font_size " : 14 } )
FORMATS [ " format_ws_title " ] = workbook . add_format (
{ " bold " : True , " font_size " : 14 }
)
# no border formats
# no border formats
self . format_left = workbook . add_format ( { " align " : " left " } )
self . format_center = workbook . add_format ( { " align " : " center " } )
self . format_right = workbook . add_format ( { " align " : " right " } )
self . format_amount_left = workbook . add_format (
FORMATS [ " format_left " ] = workbook . add_format ( { " align " : " left " } )
FORMATS [ " format_center " ] = workbook . add_format ( { " align " : " center " } )
FORMATS [ " format_right " ] = workbook . add_format ( { " align " : " right " } )
FORMATS [ " format_amount_left " ] = workbook . add_format (
{ " align " : " left " , " num_format " : num_format }
{ " align " : " left " , " num_format " : num_format }
)
)
self . format_amount_center = workbook . add_format (
FORMATS [ " format_amount_center " ] = workbook . add_format (
{ " align " : " center " , " num_format " : num_format }
{ " align " : " center " , " num_format " : num_format }
)
)
self . format_amount_right = workbook . add_format (
FORMATS [ " format_amount_right " ] = workbook . add_format (
{ " align " : " right " , " num_format " : num_format }
{ " align " : " right " , " num_format " : num_format }
)
)
self . format_amount_conditional_left = workbook . add_format (
FORMATS [ " format_amount_conditional_left " ] = workbook . add_format (
{ " align " : " left " , " num_format " : num_format_conditional }
{ " align " : " left " , " num_format " : num_format_conditional }
)
)
self . format_amount_conditional_center = workbook . add_format (
FORMATS [ " format_amount_conditional_center " ] = workbook . add_format (
{ " align " : " center " , " num_format " : num_format_conditional }
{ " align " : " center " , " num_format " : num_format_conditional }
)
)
self . format_amount_conditional_right = workbook . add_format (
FORMATS [ " format_amount_conditional_right " ] = workbook . add_format (
{ " align " : " right " , " num_format " : num_format_conditional }
{ " align " : " right " , " num_format " : num_format_conditional }
)
)
self . format_percent_left = workbook . add_format (
FORMATS [ " format_percent_left " ] = workbook . add_format (
{ " align " : " left " , " num_format " : pct_format }
{ " align " : " left " , " num_format " : pct_format }
)
)
self . format_percent_center = workbook . add_format (
FORMATS [ " format_percent_center " ] = workbook . add_format (
{ " align " : " center " , " num_format " : pct_format }
{ " align " : " center " , " num_format " : pct_format }
)
)
self . format_percent_right = workbook . add_format (
FORMATS [ " format_percent_right " ] = workbook . add_format (
{ " align " : " right " , " num_format " : pct_format }
{ " align " : " right " , " num_format " : pct_format }
)
)
self . format_percent_conditional_left = workbook . add_format (
FORMATS [ " format_percent_conditional_left " ] = workbook . add_format (
{ " align " : " left " , " num_format " : pct_format_conditional }
{ " align " : " left " , " num_format " : pct_format_conditional }
)
)
self . format_percent_conditional_center = workbook . add_format (
FORMATS [ " format_percent_conditional_center " ] = workbook . add_format (
{ " align " : " center " , " num_format " : pct_format_conditional }
{ " align " : " center " , " num_format " : pct_format_conditional }
)
)
self . format_percent_conditional_right = workbook . add_format (
FORMATS [ " format_percent_conditional_right " ] = workbook . add_format (
{ " align " : " right " , " num_format " : pct_format_conditional }
{ " align " : " right " , " num_format " : pct_format_conditional }
)
)
self . format_integer_left = workbook . add_format (
FORMATS [ " format_integer_left " ] = workbook . add_format (
{ " align " : " left " , " num_format " : int_format }
{ " align " : " left " , " num_format " : int_format }
)
)
self . format_integer_center = workbook . add_format (
FORMATS [ " format_integer_center " ] = workbook . add_format (
{ " align " : " center " , " num_format " : int_format }
{ " align " : " center " , " num_format " : int_format }
)
)
self . format_integer_right = workbook . add_format (
FORMATS [ " format_integer_right " ] = workbook . add_format (
{ " align " : " right " , " num_format " : int_format }
{ " align " : " right " , " num_format " : int_format }
)
)
self . format_integer_conditional_left = workbook . add_format (
FORMATS [ " format_integer_conditional_left " ] = workbook . add_format (
{ " align " : " right " , " num_format " : int_format_conditional }
{ " align " : " right " , " num_format " : int_format_conditional }
)
)
self . format_integer_conditional_center = workbook . add_format (
FORMATS [ " format_integer_conditional_center " ] = workbook . add_format (
{ " align " : " center " , " num_format " : int_format_conditional }
{ " align " : " center " , " num_format " : int_format_conditional }
)
)
self . format_integer_conditional_right = workbook . add_format (
FORMATS [ " format_integer_conditional_right " ] = workbook . add_format (
{ " align " : " right " , " num_format " : int_format_conditional }
{ " align " : " right " , " num_format " : int_format_conditional }
)
)
self . format_date_left = workbook . add_format (
FORMATS [ " format_date_left " ] = workbook . add_format (
{ " align " : " left " , " num_format " : date_format }
{ " align " : " left " , " num_format " : date_format }
)
)
self . format_date_center = workbook . add_format (
FORMATS [ " format_date_center " ] = workbook . add_format (
{ " align " : " center " , " num_format " : date_format }
{ " align " : " center " , " num_format " : date_format }
)
)
self . format_date_right = workbook . add_format (
FORMATS [ " format_date_right " ] = workbook . add_format (
{ " align " : " right " , " num_format " : date_format }
{ " align " : " right " , " num_format " : date_format }
)
)
self . format_left_bold = workbook . add_format ( { " align " : " left " , " bold " : True } )
self . format_center_bold = workbook . add_format ( { " align " : " center " , " bold " : True } )
self . format_right_bold = workbook . add_format ( { " align " : " right " , " bold " : True } )
self . format_amount_left_bold = workbook . add_format (
FORMATS [ " format_left_bold " ] = workbook . add_format (
{ " align " : " left " , " bold " : True }
)
FORMATS [ " format_center_bold " ] = workbook . add_format (
{ " align " : " center " , " bold " : True }
)
FORMATS [ " format_right_bold " ] = workbook . add_format (
{ " align " : " right " , " bold " : True }
)
FORMATS [ " format_amount_left_bold " ] = workbook . add_format (
{ " align " : " left " , " bold " : True , " num_format " : num_format }
{ " align " : " left " , " bold " : True , " num_format " : num_format }
)
)
self . format_amount_center_bold = workbook . add_format (
FORMATS [ " format_amount_center_bold " ] = workbook . add_format (
{ " align " : " center " , " bold " : True , " num_format " : num_format }
{ " align " : " center " , " bold " : True , " num_format " : num_format }
)
)
self . format_amount_right_bold = workbook . add_format (
FORMATS [ " format_amount_right_bold " ] = workbook . add_format (
{ " align " : " right " , " bold " : True , " num_format " : num_format }
{ " align " : " right " , " bold " : True , " num_format " : num_format }
)
)
self . format_amount_conditional_left_bold = workbook . add_format (
FORMATS [ " format_amount_conditional_left_bold " ] = workbook . add_format (
{ " align " : " left " , " bold " : True , " num_format " : num_format_conditional }
{ " align " : " left " , " bold " : True , " num_format " : num_format_conditional }
)
)
self . format_amount_conditional_center_bold = workbook . add_format (
FORMATS [ " format_amount_conditional_center_bold " ] = workbook . add_format (
{ " align " : " center " , " bold " : True , " num_format " : num_format_conditional }
{ " align " : " center " , " bold " : True , " num_format " : num_format_conditional }
)
)
self . format_amount_conditional_right_bold = workbook . add_format (
FORMATS [ " format_amount_conditional_right_bold " ] = workbook . add_format (
{ " align " : " right " , " bold " : True , " num_format " : num_format_conditional }
{ " align " : " right " , " bold " : True , " num_format " : num_format_conditional }
)
)
self . format_percent_left_bold = workbook . add_format (
FORMATS [ " format_percent_left_bold " ] = workbook . add_format (
{ " align " : " left " , " bold " : True , " num_format " : pct_format }
{ " align " : " left " , " bold " : True , " num_format " : pct_format }
)
)
self . format_percent_center_bold = workbook . add_format (
FORMATS [ " format_percent_center_bold " ] = workbook . add_format (
{ " align " : " center " , " bold " : True , " num_format " : pct_format }
{ " align " : " center " , " bold " : True , " num_format " : pct_format }
)
)
self . format_percent_right_bold = workbook . add_format (
FORMATS [ " format_percent_right_bold " ] = workbook . add_format (
{ " align " : " right " , " bold " : True , " num_format " : pct_format }
{ " align " : " right " , " bold " : True , " num_format " : pct_format }
)
)
self . format_percent_conditional_left_bold = workbook . add_format (
FORMATS [ " format_percent_conditional_left_bold " ] = workbook . add_format (
{ " align " : " left " , " bold " : True , " num_format " : pct_format_conditional }
{ " align " : " left " , " bold " : True , " num_format " : pct_format_conditional }
)
)
self . format_percent_conditional_center_bold = workbook . add_format (
FORMATS [ " format_percent_conditional_center_bold " ] = workbook . add_format (
{ " align " : " center " , " bold " : True , " num_format " : pct_format_conditional }
{ " align " : " center " , " bold " : True , " num_format " : pct_format_conditional }
)
)
self . format_percent_conditional_right_bold = workbook . add_format (
FORMATS [ " format_percent_conditional_right_bold " ] = workbook . add_format (
{ " align " : " right " , " bold " : True , " num_format " : pct_format_conditional }
{ " align " : " right " , " bold " : True , " num_format " : pct_format_conditional }
)
)
self . format_integer_left_bold = workbook . add_format (
FORMATS [ " format_integer_left_bold " ] = workbook . add_format (
{ " align " : " left " , " bold " : True , " num_format " : int_format }
{ " align " : " left " , " bold " : True , " num_format " : int_format }
)
)
self . format_integer_center_bold = workbook . add_format (
FORMATS [ " format_integer_center_bold " ] = workbook . add_format (
{ " align " : " center " , " bold " : True , " num_format " : int_format }
{ " align " : " center " , " bold " : True , " num_format " : int_format }
)
)
self . format_integer_right_bold = workbook . add_format (
FORMATS [ " format_integer_right_bold " ] = workbook . add_format (
{ " align " : " right " , " bold " : True , " num_format " : int_format }
{ " align " : " right " , " bold " : True , " num_format " : int_format }
)
)
self . format_integer_conditional_left_bold = workbook . add_format (
FORMATS [ " format_integer_conditional_left_bold " ] = workbook . add_format (
{ " align " : " left " , " bold " : True , " num_format " : int_format_conditional }
{ " align " : " left " , " bold " : True , " num_format " : int_format_conditional }
)
)
self . format_integer_conditional_center_bold = workbook . add_format (
FORMATS [ " format_integer_conditional_center_bold " ] = workbook . add_format (
{ " align " : " center " , " bold " : True , " num_format " : int_format_conditional }
{ " align " : " center " , " bold " : True , " num_format " : int_format_conditional }
)
)
self . format_integer_conditional_right_bold = workbook . add_format (
FORMATS [ " format_integer_conditional_right_bold " ] = workbook . add_format (
{ " align " : " right " , " bold " : True , " num_format " : int_format_conditional }
{ " align " : " right " , " bold " : True , " num_format " : int_format_conditional }
)
)
self . format_date_left_bold = workbook . add_format (
FORMATS [ " format_date_left_bold " ] = workbook . add_format (
{ " align " : " left " , " bold " : True , " num_format " : date_format }
{ " align " : " left " , " bold " : True , " num_format " : date_format }
)
)
self . format_date_center_bold = workbook . add_format (
FORMATS [ " format_date_center_bold " ] = workbook . add_format (
{ " align " : " center " , " bold " : True , " num_format " : date_format }
{ " align " : " center " , " bold " : True , " num_format " : date_format }
)
)
self . format_date_right_bold = workbook . add_format (
FORMATS [ " format_date_right_bold " ] = workbook . add_format (
{ " align " : " right " , " bold " : True , " num_format " : date_format }
{ " align " : " right " , " bold " : True , " num_format " : date_format }
)
)
# formats for worksheet table column headers
# formats for worksheet table column headers
self . format_theader_yellow_left = workbook . add_format ( theader_yellow )
self . format_theader_yellow_center = workbook . add_format (
FORMATS [ " format_theader_grey_left " ] = workbook . add_format ( theader_grey )
FORMATS [ " format_theader_grey_center " ] = workbook . add_format (
dict ( theader_grey , align = " center " )
)
FORMATS [ " format_theader_grey_right " ] = workbook . add_format (
dict ( theader_grey , align = " right " )
)
FORMATS [ " format_theader_grey_amount_left " ] = workbook . add_format (
dict ( theader_grey , num_format = num_format , align = " left " )
)
FORMATS [ " format_theader_grey_amount_center " ] = workbook . add_format (
dict ( theader_grey , num_format = num_format , align = " center " )
)
FORMATS [ " format_theader_grey_amount_right " ] = workbook . add_format (
dict ( theader_grey , num_format = num_format , align = " right " )
)
FORMATS [ " format_theader_grey_amount_conditional_left " ] = workbook . add_format (
dict ( theader_grey , num_format = num_format_conditional , align = " left " )
)
FORMATS [ " format_theader_grey_amount_conditional_center " ] = workbook . add_format (
dict ( theader_grey , num_format = num_format_conditional , align = " center " )
)
FORMATS [ " format_theader_grey_amount_conditional_right " ] = workbook . add_format (
dict ( theader_grey , num_format = num_format_conditional , align = " right " )
)
FORMATS [ " format_theader_grey_percent_left " ] = workbook . add_format (
dict ( theader_grey , num_format = pct_format , align = " left " )
)
FORMATS [ " format_theader_grey_percent_center " ] = workbook . add_format (
dict ( theader_grey , num_format = pct_format , align = " center " )
)
FORMATS [ " format_theader_grey_percent_right " ] = workbook . add_format (
dict ( theader_grey , num_format = pct_format , align = " right " )
)
FORMATS [ " format_theader_grey_percent_conditional_left " ] = workbook . add_format (
dict ( theader_grey , num_format = pct_format_conditional , align = " left " )
)
FORMATS [ " format_theader_grey_percent_conditional_center " ] = workbook . add_format (
dict ( theader_grey , num_format = pct_format_conditional , align = " center " )
)
FORMATS [ " format_theader_grey_percent_conditional_right " ] = workbook . add_format (
dict ( theader_grey , num_format = pct_format_conditional , align = " right " )
)
FORMATS [ " format_theader_grey_integer_left " ] = workbook . add_format (
dict ( theader_grey , num_format = int_format , align = " left " )
)
FORMATS [ " format_theader_grey_integer_center " ] = workbook . add_format (
dict ( theader_grey , num_format = int_format , align = " center " )
)
FORMATS [ " format_theader_grey_integer_right " ] = workbook . add_format (
dict ( theader_grey , num_format = int_format , align = " right " )
)
FORMATS [ " format_theader_grey_integer_conditional_left " ] = workbook . add_format (
dict ( theader_grey , num_format = int_format_conditional , align = " left " )
)
FORMATS [ " format_theader_grey_integer_conditional_center " ] = workbook . add_format (
dict ( theader_grey , num_format = int_format_conditional , align = " center " )
)
FORMATS [ " format_theader_grey_integer_conditional_right " ] = workbook . add_format (
dict ( theader_grey , num_format = int_format_conditional , align = " right " )
)
FORMATS [ " format_theader_yellow_left " ] = workbook . add_format ( theader_yellow )
FORMATS [ " format_theader_yellow_center " ] = workbook . add_format (
dict ( theader_yellow , align = " center " )
dict ( theader_yellow , align = " center " )
)
)
self . format_theader_yellow_right = workbook . add_format (
FORMATS [ " format_theader_yellow_right " ] = workbook . add_format (
dict ( theader_yellow , align = " right " )
dict ( theader_yellow , align = " right " )
)
)
self . format_theader_yellow_amount_left = workbook . add_format (
FORMATS [ " format_theader_yellow_amount_left " ] = workbook . add_format (
dict ( theader_yellow , num_format = num_format , align = " left " )
dict ( theader_yellow , num_format = num_format , align = " left " )
)
)
self . format_theader_yellow_amount_center = workbook . add_format (
FORMATS [ " format_theader_yellow_amount_center " ] = workbook . add_format (
dict ( theader_yellow , num_format = num_format , align = " center " )
dict ( theader_yellow , num_format = num_format , align = " center " )
)
)
self . format_theader_yellow_amount_right = workbook . add_format (
FORMATS [ " format_theader_yellow_amount_right " ] = workbook . add_format (
dict ( theader_yellow , num_format = num_format , align = " right " )
dict ( theader_yellow , num_format = num_format , align = " right " )
)
)
self . format_theader_yellow_amount_conditional_left = workbook . add_format (
FORMATS [ " format_theader_yellow_amount_conditional_left " ] = workbook . add_format (
dict ( theader_yellow , num_format = num_format_conditional , align = " left " )
dict ( theader_yellow , num_format = num_format_conditional , align = " left " )
)
)
self . format_theader_yellow_amount_conditional_center = workbook . add_format (
FORMATS [
" format_theader_yellow_amount_conditional_center "
] = workbook . add_format (
dict ( theader_yellow , num_format = num_format_conditional , align = " center " )
dict ( theader_yellow , num_format = num_format_conditional , align = " center " )
)
)
self . format_theader_yellow_amount_conditional_right = workbook . add_format (
FORMATS [ " format_theader_yellow_amount_conditional_right " ] = workbook . add_format (
dict ( theader_yellow , num_format = num_format_conditional , align = " right " )
dict ( theader_yellow , num_format = num_format_conditional , align = " right " )
)
)
self . format_theader_yellow_percent_left = workbook . add_format (
FORMATS [ " format_theader_yellow_percent_left " ] = workbook . add_format (
dict ( theader_yellow , num_format = pct_format , align = " left " )
dict ( theader_yellow , num_format = pct_format , align = " left " )
)
)
self . format_theader_yellow_percent_center = workbook . add_format (
FORMATS [ " format_theader_yellow_percent_center " ] = workbook . add_format (
dict ( theader_yellow , num_format = pct_format , align = " center " )
dict ( theader_yellow , num_format = pct_format , align = " center " )
)
)
self . format_theader_yellow_percent_right = workbook . add_format (
FORMATS [ " format_theader_yellow_percent_right " ] = workbook . add_format (
dict ( theader_yellow , num_format = pct_format , align = " right " )
dict ( theader_yellow , num_format = pct_format , align = " right " )
)
)
self . format_theader_yellow_percent_conditional_left = workbook . add_format (
FORMATS [ " format_theader_yellow_percent_conditional_left " ] = workbook . add_format (
dict ( theader_yellow , num_format = pct_format_conditional , align = " left " )
dict ( theader_yellow , num_format = pct_format_conditional , align = " left " )
)
)
self . format_theader_yellow_percent_conditional_center = workbook . add_format (
FORMATS [
" format_theader_yellow_percent_conditional_center "
] = workbook . add_format (
dict ( theader_yellow , num_format = pct_format_conditional , align = " center " )
dict ( theader_yellow , num_format = pct_format_conditional , align = " center " )
)
)
self . format_theader_yellow_percent_conditional_right = workbook . add_format (
FORMATS [
" format_theader_yellow_percent_conditional_right "
] = workbook . add_format (
dict ( theader_yellow , num_format = pct_format_conditional , align = " right " )
dict ( theader_yellow , num_format = pct_format_conditional , align = " right " )
)
)
self . format_theader_yellow_integer_left = workbook . add_format (
FORMATS [ " format_theader_yellow_integer_left " ] = workbook . add_format (
dict ( theader_yellow , num_format = int_format , align = " left " )
dict ( theader_yellow , num_format = int_format , align = " left " )
)
)
self . format_theader_yellow_integer_center = workbook . add_format (
FORMATS [ " format_theader_yellow_integer_center " ] = workbook . add_format (
dict ( theader_yellow , num_format = int_format , align = " center " )
dict ( theader_yellow , num_format = int_format , align = " center " )
)
)
self . format_theader_yellow_integer_right = workbook . add_format (
FORMATS [ " format_theader_yellow_integer_right " ] = workbook . add_format (
dict ( theader_yellow , num_format = int_format , align = " right " )
dict ( theader_yellow , num_format = int_format , align = " right " )
)
)
self . format_theader_yellow_integer_conditional_left = workbook . add_format (
FORMATS [ " format_theader_yellow_integer_conditional_left " ] = workbook . add_format (
dict ( theader_yellow , num_format = int_format_conditional , align = " left " )
dict ( theader_yellow , num_format = int_format_conditional , align = " left " )
)
)
self . format_theader_yellow_integer_conditional_center = workbook . add_format (
FORMATS [
" format_theader_yellow_integer_conditional_center "
] = workbook . add_format (
dict ( theader_yellow , num_format = int_format_conditional , align = " center " )
dict ( theader_yellow , num_format = int_format_conditional , align = " center " )
)
)
self . format_theader_yellow_integer_conditional_right = workbook . add_format (
FORMATS [
" format_theader_yellow_integer_conditional_right "
] = workbook . add_format (
dict ( theader_yellow , num_format = int_format_conditional , align = " right " )
dict ( theader_yellow , num_format = int_format_conditional , align = " right " )
)
)
self . format_theader_blue_left = workbook . add_format ( theader_blue )
self . format_theader_blue_center = workbook . add_format (
FORMATS [ " format_theader_blue_left " ] = workbook . add_format ( theader_blue )
FORMATS [ " format_theader_blue_center " ] = workbook . add_format (
dict ( theader_blue , align = " center " )
dict ( theader_blue , align = " center " )
)
)
self . format_theader_blue_right = workbook . add_format (
FORMATS [ " format_theader_blue_right " ] = workbook . add_format (
dict ( theader_blue , align = " right " )
dict ( theader_blue , align = " right " )
)
)
self . format_theader_blue_amount_left = workbook . add_format (
FORMATS [ " format_theader_blue_amount_left " ] = workbook . add_format (
dict ( theader_blue , num_format = num_format , align = " left " )
dict ( theader_blue , num_format = num_format , align = " left " )
)
)
self . format_theader_blue_amount_center = workbook . add_format (
FORMATS [ " format_theader_blue_amount_center " ] = workbook . add_format (
dict ( theader_blue , num_format = num_format , align = " center " )
dict ( theader_blue , num_format = num_format , align = " center " )
)
)
self . format_theader_blue_amount_right = workbook . add_format (
FORMATS [ " format_theader_blue_amount_right " ] = workbook . add_format (
dict ( theader_blue , num_format = num_format , align = " right " )
dict ( theader_blue , num_format = num_format , align = " right " )
)
)
self . format_theader_blue_amount_conditional_left = workbook . add_format (
FORMATS [ " format_theader_blue_amount_conditional_left " ] = workbook . add_format (
dict ( theader_blue , num_format = num_format_conditional , align = " left " )
dict ( theader_blue , num_format = num_format_conditional , align = " left " )
)
)
self . format_theader_blue_amount_conditional_center = workbook . add_format (
FORMATS [ " format_theader_blue_amount_conditional_center " ] = workbook . add_format (
dict ( theader_blue , num_format = num_format_conditional , align = " center " )
dict ( theader_blue , num_format = num_format_conditional , align = " center " )
)
)
self . format_theader_blue_amount_conditional_right = workbook . add_format (
FORMATS [ " format_theader_blue_amount_conditional_right " ] = workbook . add_format (
dict ( theader_blue , num_format = num_format_conditional , align = " right " )
dict ( theader_blue , num_format = num_format_conditional , align = " right " )
)
)
self . format_theader_blue_percent_left = workbook . add_format (
FORMATS [ " format_theader_blue_percent_left " ] = workbook . add_format (
dict ( theader_blue , num_format = pct_format , align = " left " )
dict ( theader_blue , num_format = pct_format , align = " left " )
)
)
self . format_theader_blue_percent_center = workbook . add_format (
FORMATS [ " format_theader_blue_percent_center " ] = workbook . add_format (
dict ( theader_blue , num_format = pct_format , align = " center " )
dict ( theader_blue , num_format = pct_format , align = " center " )
)
)
self . format_theader_blue_percent_right = workbook . add_format (
FORMATS [ " format_theader_blue_percent_right " ] = workbook . add_format (
dict ( theader_blue , num_format = pct_format , align = " right " )
dict ( theader_blue , num_format = pct_format , align = " right " )
)
)
self . format_theader_blue_percent_conditional_left = workbook . add_format (
FORMATS [ " format_theader_blue_percent_conditional_left " ] = workbook . add_format (
dict ( theader_blue , num_format = pct_format_conditional , align = " left " )
dict ( theader_blue , num_format = pct_format_conditional , align = " left " )
)
)
self . format_theader_blue_percent_conditional_center = workbook . add_format (
FORMATS [ " format_theader_blue_percent_conditional_center " ] = workbook . add_format (
dict ( theader_blue , num_format = pct_format_conditional , align = " center " )
dict ( theader_blue , num_format = pct_format_conditional , align = " center " )
)
)
self . format_theader_blue_percent_conditional_right = workbook . add_format (
FORMATS [ " format_theader_blue_percent_conditional_right " ] = workbook . add_format (
dict ( theader_blue , num_format = pct_format_conditional , align = " right " )
dict ( theader_blue , num_format = pct_format_conditional , align = " right " )
)
)
self . format_theader_blue_integer_left = workbook . add_format (
FORMATS [ " format_theader_blue_integer_left " ] = workbook . add_format (
dict ( theader_blue , num_format = int_format , align = " left " )
dict ( theader_blue , num_format = int_format , align = " left " )
)
)
self . format_theader_blue_integer_center = workbook . add_format (
FORMATS [ " format_theader_blue_integer_center " ] = workbook . add_format (
dict ( theader_blue , num_format = int_format , align = " center " )
dict ( theader_blue , num_format = int_format , align = " center " )
)
)
self . format_theader_blue_integer_right = workbook . add_format (
FORMATS [ " format_theader_blue_integer_right " ] = workbook . add_format (
dict ( theader_blue , num_format = int_format , align = " right " )
dict ( theader_blue , num_format = int_format , align = " right " )
)
)
self . format_theader_blue_integer_conditional_left = workbook . add_format (
FORMATS [ " format_theader_blue_integer_conditional_left " ] = workbook . add_format (
dict ( theader_blue , num_format = int_format_conditional , align = " left " )
dict ( theader_blue , num_format = int_format_conditional , align = " left " )
)
)
self . format_theader_blue_integer_conditional_center = workbook . add_format (
FORMATS [ " format_theader_blue_integer_conditional_center " ] = workbook . add_format (
dict ( theader_blue , num_format = int_format_conditional , align = " center " )
dict ( theader_blue , num_format = int_format_conditional , align = " center " )
)
)
self . format_theader_blue_integer_conditional_right = workbook . add_format (
FORMATS [ " format_theader_blue_integer_conditional_right " ] = workbook . add_format (
dict ( theader_blue , num_format = int_format_conditional , align = " right " )
dict ( theader_blue , num_format = int_format_conditional , align = " right " )
)
)
# formats for worksheet table cells
# formats for worksheet table cells
self . format_tcell_left = workbook . add_format ( dict ( border , align = " left " ) )
self . format_tcell_center = workbook . add_format ( dict ( border , align = " center " ) )
self . format_tcell_right = workbook . add_format ( dict ( border , align = " right " ) )
self . format_tcell_amount_left = workbook . add_format (
FORMATS [ " format_tcell_left " ] = workbook . add_format ( dict ( border , align = " left " ) )
FORMATS [ " format_tcell_center " ] = workbook . add_format (
dict ( border , align = " center " )
)
FORMATS [ " format_tcell_right " ] = workbook . add_format ( dict ( border , align = " right " ) )
FORMATS [ " format_tcell_amount_left " ] = workbook . add_format (
dict ( border , num_format = num_format , align = " left " )
dict ( border , num_format = num_format , align = " left " )
)
)
self . format_tcell_amount_center = workbook . add_format (
FORMATS [ " format_tcell_amount_center " ] = workbook . add_format (
dict ( border , num_format = num_format , align = " center " )
dict ( border , num_format = num_format , align = " center " )
)
)
self . format_tcell_amount_right = workbook . add_format (
FORMATS [ " format_tcell_amount_right " ] = workbook . add_format (
dict ( border , num_format = num_format , align = " right " )
dict ( border , num_format = num_format , align = " right " )
)
)
self . format_tcell_amount_conditional_left = workbook . add_format (
FORMATS [ " format_tcell_amount_conditional_left " ] = workbook . add_format (
dict ( border , num_format = num_format_conditional , align = " left " )
dict ( border , num_format = num_format_conditional , align = " left " )
)
)
self . format_tcell_amount_conditional_center = workbook . add_format (
FORMATS [ " format_tcell_amount_conditional_center " ] = workbook . add_format (
dict ( border , num_format = num_format_conditional , align = " center " )
dict ( border , num_format = num_format_conditional , align = " center " )
)
)
self . format_tcell_amount_conditional_right = workbook . add_format (
FORMATS [ " format_tcell_amount_conditional_right " ] = workbook . add_format (
dict ( border , num_format = num_format_conditional , align = " right " )
dict ( border , num_format = num_format_conditional , align = " right " )
)
)
self . format_tcell_percent_left = workbook . add_format (
FORMATS [ " format_tcell_percent_left " ] = workbook . add_format (
dict ( border , num_format = pct_format , align = " left " )
dict ( border , num_format = pct_format , align = " left " )
)
)
self . format_tcell_percent_center = workbook . add_format (
FORMATS [ " format_tcell_percent_center " ] = workbook . add_format (
dict ( border , num_format = pct_format , align = " center " )
dict ( border , num_format = pct_format , align = " center " )
)
)
self . format_tcell_percent_right = workbook . add_format (
FORMATS [ " format_tcell_percent_right " ] = workbook . add_format (
dict ( border , num_format = pct_format , align = " right " )
dict ( border , num_format = pct_format , align = " right " )
)
)
self . format_tcell_percent_conditional_left = workbook . add_format (
FORMATS [ " format_tcell_percent_conditional_left " ] = workbook . add_format (
dict ( border , num_format = pct_format_conditional , align = " left " )
dict ( border , num_format = pct_format_conditional , align = " left " )
)
)
self . format_tcell_percent_conditional_center = workbook . add_format (
FORMATS [ " format_tcell_percent_conditional_center " ] = workbook . add_format (
dict ( border , num_format = pct_format_conditional , align = " center " )
dict ( border , num_format = pct_format_conditional , align = " center " )
)
)
self . format_tcell_percent_conditional_right = workbook . add_format (
FORMATS [ " format_tcell_percent_conditional_right " ] = workbook . add_format (
dict ( border , num_format = pct_format_conditional , align = " right " )
dict ( border , num_format = pct_format_conditional , align = " right " )
)
)
self . format_tcell_integer_left = workbook . add_format (
FORMATS [ " format_tcell_integer_left " ] = workbook . add_format (
dict ( border , num_format = int_format , align = " left " )
dict ( border , num_format = int_format , align = " left " )
)
)
self . format_tcell_integer_center = workbook . add_format (
FORMATS [ " format_tcell_integer_center " ] = workbook . add_format (
dict ( border , num_format = int_format , align = " center " )
dict ( border , num_format = int_format , align = " center " )
)
)
self . format_tcell_integer_right = workbook . add_format (
FORMATS [ " format_tcell_integer_right " ] = workbook . add_format (
dict ( border , num_format = int_format , align = " right " )
dict ( border , num_format = int_format , align = " right " )
)
)
self . format_tcell_integer_conditional_left = workbook . add_format (
FORMATS [ " format_tcell_integer_conditional_left " ] = workbook . add_format (
dict ( border , num_format = int_format_conditional , align = " left " )
dict ( border , num_format = int_format_conditional , align = " left " )
)
)
self . format_tcell_integer_conditional_center = workbook . add_format (
FORMATS [ " format_tcell_integer_conditional_center " ] = workbook . add_format (
dict ( border , num_format = int_format_conditional , align = " center " )
dict ( border , num_format = int_format_conditional , align = " center " )
)
)
self . format_tcell_integer_conditional_right = workbook . add_format (
FORMATS [ " format_tcell_integer_conditional_right " ] = workbook . add_format (
dict ( border , num_format = int_format_conditional , align = " right " )
dict ( border , num_format = int_format_conditional , align = " right " )
)
)
self . format_tcell_date_left = workbook . add_format (
FORMATS [ " format_tcell_date_left " ] = workbook . add_format (
dict ( border , num_format = date_format , align = " left " )
dict ( border , num_format = date_format , align = " left " )
)
)
self . format_tcell_date_center = workbook . add_format (
FORMATS [ " format_tcell_date_center " ] = workbook . add_format (
dict ( border , num_format = date_format , align = " center " )
dict ( border , num_format = date_format , align = " center " )
)
)
self . format_tcell_date_right = workbook . add_format (
FORMATS [ " format_tcell_date_right " ] = workbook . add_format (
dict ( border , num_format = date_format , align = " right " )
dict ( border , num_format = date_format , align = " right " )
)
)
self . format_tcell_left_bold = workbook . add_format (
FORMATS [ " format_tcell_left_bold " ] = workbook . add_format (
dict ( border , align = " left " , bold = True )
dict ( border , align = " left " , bold = True )
)
)
self . format_tcell_center_bold = workbook . add_format (
FORMATS [ " format_tcell_center_bold " ] = workbook . add_format (
dict ( border , align = " center " , bold = True )
dict ( border , align = " center " , bold = True )
)
)
self . format_tcell_right_bold = workbook . add_format (
FORMATS [ " format_tcell_right_bold " ] = workbook . add_format (
dict ( border , align = " right " , bold = True )
dict ( border , align = " right " , bold = True )
)
)
self . format_tcell_amount_left_bold = workbook . add_format (
FORMATS [ " format_tcell_amount_left_bold " ] = workbook . add_format (
dict ( border , num_format = num_format , align = " left " , bold = True )
dict ( border , num_format = num_format , align = " left " , bold = True )
)
)
self . format_tcell_amount_center_bold = workbook . add_format (
FORMATS [ " format_tcell_amount_center_bold " ] = workbook . add_format (
dict ( border , num_format = num_format , align = " center " , bold = True )
dict ( border , num_format = num_format , align = " center " , bold = True )
)
)
self . format_tcell_amount_right_bold = workbook . add_format (
FORMATS [ " format_tcell_amount_right_bold " ] = workbook . add_format (
dict ( border , num_format = num_format , align = " right " , bold = True )
dict ( border , num_format = num_format , align = " right " , bold = True )
)
)
self . format_tcell_amount_conditional_left_bold = workbook . add_format (
FORMATS [ " format_tcell_amount_conditional_left_bold " ] = workbook . add_format (
dict ( border , num_format = num_format_conditional , align = " left " , bold = True )
dict ( border , num_format = num_format_conditional , align = " left " , bold = True )
)
)
self . format_tcell_amount_conditional_center_bold = workbook . add_format (
FORMATS [ " format_tcell_amount_conditional_center_bold " ] = workbook . add_format (
dict ( border , num_format = num_format_conditional , align = " center " , bold = True )
dict ( border , num_format = num_format_conditional , align = " center " , bold = True )
)
)
self . format_tcell_amount_conditional_right_bold = workbook . add_format (
FORMATS [ " format_tcell_amount_conditional_right_bold " ] = workbook . add_format (
dict ( border , num_format = num_format_conditional , align = " right " , bold = True )
dict ( border , num_format = num_format_conditional , align = " right " , bold = True )
)
)
self . format_tcell_percent_left_bold = workbook . add_format (
FORMATS [ " format_tcell_percent_left_bold " ] = workbook . add_format (
dict ( border , num_format = pct_format , align = " left " , bold = True )
dict ( border , num_format = pct_format , align = " left " , bold = True )
)
)
self . format_tcell_percent_center_bold = workbook . add_format (
FORMATS [ " format_tcell_percent_center_bold " ] = workbook . add_format (
dict ( border , num_format = pct_format , align = " center " , bold = True )
dict ( border , num_format = pct_format , align = " center " , bold = True )
)
)
self . format_tcell_percent_right_bold = workbook . add_format (
FORMATS [ " format_tcell_percent_right_bold " ] = workbook . add_format (
dict ( border , num_format = pct_format , align = " right " , bold = True )
dict ( border , num_format = pct_format , align = " right " , bold = True )
)
)
self . format_tcell_percent_conditional_left_bold = workbook . add_format (
FORMATS [ " format_tcell_percent_conditional_left_bold " ] = workbook . add_format (
dict ( border , num_format = pct_format_conditional , align = " left " , bold = True )
dict ( border , num_format = pct_format_conditional , align = " left " , bold = True )
)
)
self . format_tcell_percent_conditional_center_bold = workbook . add_format (
FORMATS [ " format_tcell_percent_conditional_center_bold " ] = workbook . add_format (
dict ( border , num_format = pct_format_conditional , align = " center " , bold = True )
dict ( border , num_format = pct_format_conditional , align = " center " , bold = True )
)
)
self . format_tcell_percent_conditional_right_bold = workbook . add_format (
FORMATS [ " format_tcell_percent_conditional_right_bold " ] = workbook . add_format (
dict ( border , num_format = pct_format_conditional , align = " right " , bold = True )
dict ( border , num_format = pct_format_conditional , align = " right " , bold = True )
)
)
self . format_tcell_integer_left_bold = workbook . add_format (
FORMATS [ " format_tcell_integer_left_bold " ] = workbook . add_format (
dict ( border , num_format = int_format , align = " left " , bold = True )
dict ( border , num_format = int_format , align = " left " , bold = True )
)
)
self . format_tcell_integer_center_bold = workbook . add_format (
FORMATS [ " format_tcell_integer_center_bold " ] = workbook . add_format (
dict ( border , num_format = int_format , align = " center " , bold = True )
dict ( border , num_format = int_format , align = " center " , bold = True )
)
)
self . format_tcell_integer_right_bold = workbook . add_format (
FORMATS [ " format_tcell_integer_right_bold " ] = workbook . add_format (
dict ( border , num_format = int_format , align = " right " , bold = True )
dict ( border , num_format = int_format , align = " right " , bold = True )
)
)
self . format_tcell_integer_conditional_left_bold = workbook . add_format (
FORMATS [ " format_tcell_integer_conditional_left_bold " ] = workbook . add_format (
dict ( border , num_format = int_format_conditional , align = " left " , bold = True )
dict ( border , num_format = int_format_conditional , align = " left " , bold = True )
)
)
self . format_tcell_integer_conditional_center_bold = workbook . add_format (
FORMATS [ " format_tcell_integer_conditional_center_bold " ] = workbook . add_format (
dict ( border , num_format = int_format_conditional , align = " center " , bold = True )
dict ( border , num_format = int_format_conditional , align = " center " , bold = True )
)
)
self . format_tcell_integer_conditional_right_bold = workbook . add_format (
FORMATS [ " format_tcell_integer_conditional_right_bold " ] = workbook . add_format (
dict ( border , num_format = int_format_conditional , align = " right " , bold = True )
dict ( border , num_format = int_format_conditional , align = " right " , bold = True )
)
)
self . format_tcell_date_left_bold = workbook . add_format (
FORMATS [ " format_tcell_date_left_bold " ] = workbook . add_format (
dict ( border , num_format = date_format , align = " left " , bold = True )
dict ( border , num_format = date_format , align = " left " , bold = True )
)
)
self . format_tcell_date_center_bold = workbook . add_format (
FORMATS [ " format_tcell_date_center_bold " ] = workbook . add_format (
dict ( border , num_format = date_format , align = " center " , bold = True )
dict ( border , num_format = date_format , align = " center " , bold = True )
)
)
self . format_tcell_date_right_bold = workbook . add_format (
FORMATS [ " format_tcell_date_right_bold " ] = workbook . add_format (
dict ( border , num_format = date_format , align = " right " , bold = True )
dict ( border , num_format = date_format , align = " right " , bold = True )
)
)
@ -557,10 +642,10 @@ class ReportXlsxAbstract(models.AbstractModel):
wl = ws_params . get ( " wanted_list " )
wl = ws_params . get ( " wanted_list " )
if wl and len ( wl ) > 1 :
if wl and len ( wl ) > 1 :
ws . merge_range (
ws . merge_range (
row_pos , 0 , row_pos , len ( wl ) - 1 , title , self . format_ws_title
row_pos , 0 , row_pos , len ( wl ) - 1 , title , FORMATS [ " format_ws_title " ]
)
)
else :
else :
ws . write_string ( row_pos , 0 , title , self . format_ws_title )
ws . write_string ( row_pos , 0 , title , FORMATS [ " format_ws_title " ] )
return row_pos + 2
return row_pos + 2
def _write_line (
def _write_line (