~taktik/openobject-addons/hui-extra-6.1

« back to all changes in this revision

Viewing changes to report_xls/utils.py

  • Committer: openerp
  • Date: 2013-12-20 01:50:09 UTC
  • Revision ID: openerp@oerp61-20131220015009-t85wkakp5r7gb0w8
add report_xls

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- encoding: utf-8 -*-
 
2
##############################################################################
 
3
#
 
4
#    OpenERP, Open Source Management Solution
 
5
#
 
6
#    Copyright (c) 2013 Noviat nv/sa (www.noviat.com). All rights reserved.
 
7
#
 
8
#    This program is free software: you can redistribute it and/or modify
 
9
#    it under the terms of the GNU Affero General Public License as
 
10
#    published by the Free Software Foundation, either version 3 of the
 
11
#    License, or (at your option) any later version.
 
12
#
 
13
#    This program is distributed in the hope that it will be useful,
 
14
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
#    GNU Affero General Public License for more details.
 
17
#
 
18
#    You should have received a copy of the GNU Affero General Public License
 
19
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
20
#
 
21
##############################################################################
 
22
#
 
23
 
 
24
def _render(code):
 
25
    return compile(code, '<string>', 'eval') 
 
26
 
 
27
def rowcol_to_cell(row, col, row_abs=False, col_abs=False):
 
28
    # Code based upon utils from xlwt distribution
 
29
    """
 
30
    Convert numeric row/col notation to an Excel cell reference string in A1 notation.
 
31
    """
 
32
    d = col // 26
 
33
    m = col % 26
 
34
    chr1 = ""    # Most significant character in AA1
 
35
    if row_abs:
 
36
        row_abs = '$'
 
37
    else:
 
38
        row_abs = ''
 
39
    if col_abs:
 
40
        col_abs = '$'
 
41
    else:
 
42
        col_abs = ''
 
43
    if d > 0:
 
44
        chr1 = chr(ord('A') + d  - 1)
 
45
    chr2 = chr(ord('A') + m)
 
46
    # Zero index to 1-index
 
47
    return col_abs + chr1 + chr2 + row_abs + str(row + 1)
 
48
               
 
49
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: