コード例 #1
0
ファイル: test_worksheet.py プロジェクト: demula/pintracker
    def test_freeze(self):
        ws = Worksheet(self.wb)
        ws.freeze_panes = ws.cell('b2')
        assert ws.freeze_panes == 'B2'

        ws.freeze_panes = ''
        assert ws.freeze_panes is None

        ws.freeze_panes = 'c5'
        assert ws.freeze_panes == 'C5'

        ws.freeze_panes = ws.cell('A1')
        assert ws.freeze_panes is None
コード例 #2
0
    def test_freeze(self):
        ws = Worksheet(self.wb)
        ws.freeze_panes = ws.cell('b2')
        assert ws.freeze_panes == 'B2'

        ws.freeze_panes = ''
        assert ws.freeze_panes is None

        ws.freeze_panes = 'c5'
        assert ws.freeze_panes == 'C5'

        ws.freeze_panes = ws.cell('A1')
        assert ws.freeze_panes is None
コード例 #3
0
def print_CFs(CF_matrices, EF_list, CF_categories):
    from openpyxl.workbook import Workbook
    from openpyxl.worksheet import Worksheet

    result_filename = 'CF_print.xlsx'
    wb = Workbook()  #creating a workbook
    for method in CF_matrices:
        ws = Worksheet(wb, title=method)  #creating a sheet inside the workbook
        ws.freeze_panes = 'D2'
        header = ['compartment', 'substance', 'subcompartment']
        for category in CF_categories[method]:
            header.append(category)
        ws.append(header)
        for EF in EF_list:
            matrix_column = EF_list.index(EF)
            compartment, substance, subcompartment = EF
            line = [compartment, substance, subcompartment]
            for category in CF_categories[method]:
                matrix_line = CF_categories[method].index(category)
                CF = CF_matrices[method][matrix_line, matrix_column]
                line.append(CF)
            ws.append(line)
    print 'saving in excel sheet named: ' + result_filename
    wb.add_sheet(ws)
    wb.save(result_filename)
コード例 #4
0
def print_UP_list(UP_list, UP_meta_info, base):
    from openpyxl.workbook import Workbook
    from openpyxl.worksheet import Worksheet

    filename = 'UP_print.xlsx'
    wb = Workbook(encoding='mac_roman')
    ws = Worksheet(wb, title='UP_list')  #creating a sheet inside the workbook
    ws.freeze_panes = 'A2'
    header = ['#', 'UP name', 'unit', 'country', 'infrastructure']
    for i in range(6):
        header.append('Category ' + str(i))
    ws.append(header)

    for i in range(len(UP_list)):
        UP = UP_list[i]
        line = [
            i + base, UP_list[i], UP_meta_info[UP]['unit'],
            UP_meta_info[UP]['Country'], UP_meta_info[UP]['Infrastructure']
        ]
        for j in range(6):
            try:
                line.append(UP_meta_info[UP]['Category type'][j])
            except IndexError:
                break
        ws.append(line)
    print 'saving in excel sheet named: ' + filename
    wb.add_sheet(ws)
    wb.save(filename)
コード例 #5
0
def print_UP_list(UP_list, UP_meta_info, base):
    from openpyxl.workbook import Workbook
    from openpyxl.worksheet import Worksheet
    
    filename = 'UP_print.xlsx'
    wb = Workbook(encoding='mac_roman')
    ws = Worksheet(wb, title = 'UP_list') #creating a sheet inside the workbook
    ws.freeze_panes = 'A2'
    header = ['#', 
              'UP name', 
              'unit', 
              'country', 
              'infrastructure']
    for i in range(6):
        header.append('Category ' + str(i))
    ws.append(header)
    
    for i in range(len(UP_list)):
        UP = UP_list[i]
        line = [i + base, 
                UP_list[i], 
                UP_meta_info[UP]['unit'], 
                UP_meta_info[UP]['Country'], 
                UP_meta_info[UP]['Infrastructure']]
        for j in range(6):
            try:
                line.append(UP_meta_info[UP]['Category type'][j])
            except IndexError:
                break
        ws.append(line)
    print 'saving in excel sheet named: ' + filename
    wb.add_sheet(ws)
    wb.save(filename)
コード例 #6
0
def print_CFs(CF_matrices, EF_list, CF_categories):
    from openpyxl.workbook import Workbook
    from openpyxl.worksheet import Worksheet
    
    result_filename = 'CF_print.xlsx'
    wb = Workbook() #creating a workbook
    for method in CF_matrices:
        ws = Worksheet(wb, title = method) #creating a sheet inside the workbook
        ws.freeze_panes = 'D2'
        header = ['compartment', 
              'substance', 
              'subcompartment']
        for category in CF_categories[method]:
            header.append(category)
        ws.append(header)
        for EF in EF_list:
            matrix_column = EF_list.index(EF)
            compartment, substance, subcompartment = EF
            line = [compartment, substance, subcompartment]
            for category in CF_categories[method]:
                matrix_line = CF_categories[method].index(category)
                CF = CF_matrices[method][matrix_line, matrix_column]
                line.append(CF)
            ws.append(line)
    print 'saving in excel sheet named: ' + result_filename
    wb.add_sheet(ws)
    wb.save(result_filename)
コード例 #7
0
def print_EF_list(EF_list):
    from openpyxl.workbook import Workbook
    from openpyxl.worksheet import Worksheet

    result_filename = 'EF_print.xlsx'
    wb = Workbook()  #creating a workbook
    ws = Worksheet(wb, title='EF_list')  #creating a sheet inside the workbook
    ws.freeze_panes = 'A2'
    header = ['compartment', 'substance', 'subcompartment']
    ws.append(header)
    for EF in EF_list:
        ws.append(EF)
    print 'saving in excel sheet named: ' + result_filename
    wb.add_sheet(ws)
    wb.save(result_filename)
コード例 #8
0
def print_EF_list(EF_list):
    from openpyxl.workbook import Workbook
    from openpyxl.worksheet import Worksheet
    
    result_filename = 'EF_print.xlsx'
    wb = Workbook() #creating a workbook
    ws = Worksheet(wb, title = 'EF_list') #creating a sheet inside the workbook
    ws.freeze_panes = 'A2'
    header = ['compartment', 
          'substance', 
          'subcompartment']
    ws.append(header)
    for EF in EF_list:
        ws.append(EF)
    print 'saving in excel sheet named: ' + result_filename
    wb.add_sheet(ws)
    wb.save(result_filename)
コード例 #9
0
def print_mat_desag(MATA, MATB,incertitude, UP_list_desag,EF_list):
	from openpyxl.workbook import Workbook
	from openpyxl.worksheet import Worksheet
	from copy import copy
	from time import time
	from scipy.sparse import lil_matrix, find

	filename = 'MAT.xlsx'
	wb = Workbook(encoding = 'mac_roman')
	Ws=wb.active
	wb.remove_sheet(Ws)
	
	
	#creation de la matrice A avec sa matrice d'incertitude
	Ws = Worksheet(wb, title = 'Processus')  
	for UP in UP_list_desag:
		line=[UP,UP_list_desag[UP]['origine']]
		line.append(UP_list_desag[UP]['process'])
		line.append(str(UP_list_desag[UP]['enfants']))
		Ws.append(line)	
	wb.add_sheet(Ws)
	
	Ws = Worksheet(wb, title = 'A')  
	Ws.freeze_panes = 'B2'
	mat=MATA.toarray()
	header = ['A']
	for UP in UP_list_desag:
		header.append(UP_list_desag[UP]['process'])
	Ws.append(header)
	for row in range(len(mat)):
		line=[row]
		for col in range(len(mat[row])):
			line.append(mat[row][col])
		Ws.append(line)	
	wb.add_sheet(Ws)
	
	Ws = Worksheet(wb, title = 'incertitude A')
	Ws.freeze_panes = 'B2'
	mat=incertitude['technology']
	header = ['incertitude A']
	for UP in UP_list_desag:
		header.append(UP_list_desag[UP]['process'])
	Ws.append(header)
	for row in range(len(mat)):
		line=[row]
		for col in range(len(mat)):
			line.append(mat[col][row])
		Ws.append(line)	
	wb.add_sheet(Ws)
	
	
	#Creation de B avec sa matrice d'incertitude
	Ws = Worksheet(wb, title = 'Flux elem') 
	Ws.freeze_panes = 'A2'
	header = ['id','compartment', 
          'substance', 
          'subcompartment']
	Ws.append(header)
	for EF in EF_list:
		L=[EF_list.index(EF)]
		L.append(EF)
		Ws.append(L)
	wb.add_sheet(Ws)
    
	Ws = Worksheet(wb, title = 'B')
	Ws.freeze_panes = 'B2'
	mat=MATB.toarray()
	header = ['B']
	for UP in UP_list_desag:
		header.append(UP_list_desag[UP]['process'])
	Ws.append(header)
	for row in range(len(mat)):
		line=[row]
		for col in range(len(mat[row])):
			line.append(mat[row][col])
		Ws.append(line)	
	wb.add_sheet(Ws)

	Ws = Worksheet(wb, title = 'incertitude B')
	Ws.freeze_panes = 'B2'
	mat=incertitude['intervention']
	header = ['incertitude B']
	for UP in UP_list_desag:
		header.append(UP_list_desag[UP]['process'])
	Ws.append(header)
	for row in range(len(mat[0])):
		line=[row]
		for col in range(len(mat)):
			line.append(mat[col][row])
		Ws.append(line)	
	wb.add_sheet(Ws)
	
	
	
	wb.save(filename)
	
	print 'fichier enregistre : MAT.xlsx'
コード例 #10
0
def write_results_disaggregation_UP(impact_method, full_results_UP, CF_categories, UP_meta_info, UP_list, all_system_scores, 
        all_unit_scores, level_reached, system_scores, system_number,systems):
    from openpyxl.workbook import Workbook
    from openpyxl.worksheet import Worksheet
    from construct_path import construct_path
    from copy import copy
    
    filename = 'disaggregation_' + impact_method + '_system' + str(system_number) + '.xlsx'
    wb = Workbook(encoding = 'mac_roman') #creating a workbook
    ws = Worksheet(wb, title = 'result') #creating a sheet inside the workbook
    
    #creation of headers
    header2 = ['instance ID', 
              'parent instance ID', 
              'unit process', 
              'demand', 
              'unit', 
              'pruned',
              'level', 
              'infrastructure']
    for impact_category in CF_categories:
        header2.append(impact_category)
    for i in range(1, level_reached + 1):
        header2.append('path level ' + str(i))
    header2.append('country')
    for i in range(4):
        header2.append('category ' + str(i))
    
    header1 = []
    for i in range(header2.index(CF_categories[0])):
        header1.append('')
    for impact_category in CF_categories:
        matrix_line = CF_categories.index(impact_category)
        header1.append(str(system_scores[matrix_line,0]))
    ws.append(header1) #writing the header
    ws.append(header2) #writing the header
    
    #content of the file
    for instance_ID in range(len(full_results_UP)): #for each instance of the full_results
        path = construct_path(full_results_UP, instance_ID, UP_list, impact_method, system_number) #construction of the path between the instance and the RF
        level = len(path) - 1 #level will be incremented from zero
        matrix_column = full_results_UP[instance_ID]['UP_number']
        UP_name = UP_list[matrix_column]
        demand = copy(full_results_UP[instance_ID]['demand'])
        #fetching the info to fill the line
        line = [instance_ID, 
                full_results_UP[instance_ID]['parent'], 
                UP_name, 
                demand, 
                UP_meta_info[UP_name]['unit'], 
                full_results_UP[instance_ID]['pruned'], 
                level, 
                UP_meta_info[UP_name]['Infrastructure']]
        for impact_category in CF_categories: #system or unit scores.  
            matrix_line = CF_categories.index(impact_category)
            if full_results_UP[instance_ID]['pruned'] == 1:
                line.append(all_system_scores[matrix_line, matrix_column] * demand)
            else:
                line.append(all_unit_scores[matrix_line, matrix_column] * demand)
        for i in range(1, level_reached + 1): #path
            try:
                line.append(path[i])
            except IndexError:
                line.append('')
        #complementary info
        line.append(UP_meta_info[UP_name]['Country'])
        for i in range(4):
            try:
                line.append(UP_meta_info[UP_name]['Category type'][i])
            except IndexError:
                line.append('')
        #print line
        ws.append(line) #writing the header
    ws.freeze_panes = 'D3'
    wb.add_sheet(ws)
    wb.save(filename)
コード例 #11
0
def print_mat_desag(MATA, MATB, incertitude, UP_list_desag, EF_list):
    from openpyxl.workbook import Workbook
    from openpyxl.worksheet import Worksheet
    from copy import copy
    from time import time
    from scipy.sparse import lil_matrix, find

    filename = "MAT.xlsx"
    wb = Workbook(encoding="mac_roman")
    Ws = wb.active
    wb.remove_sheet(Ws)

    # creation de la matrice A avec sa matrice d'incertitude
    Ws = Worksheet(wb, title="Processus")
    for UP in UP_list_desag:
        line = [UP, UP_list_desag[UP]["origine"]]
        line.append(UP_list_desag[UP]["process"])
        line.append(str(UP_list_desag[UP]["enfants"]))
        Ws.append(line)
    wb.add_sheet(Ws)

    Ws = Worksheet(wb, title="A")
    Ws.freeze_panes = "B2"
    mat = MATA.toarray()
    header = ["A"]
    for UP in UP_list_desag:
        header.append(UP_list_desag[UP]["process"])
    Ws.append(header)
    for row in range(len(mat)):
        line = [row]
        for col in range(len(mat[row])):
            line.append(mat[row][col])
        Ws.append(line)
    wb.add_sheet(Ws)

    Ws = Worksheet(wb, title="incertitude A")
    Ws.freeze_panes = "B2"
    mat = incertitude["technology"]
    header = ["incertitude A"]
    for UP in UP_list_desag:
        header.append(UP_list_desag[UP]["process"])
    Ws.append(header)
    for row in range(len(mat)):
        line = [row]
        for col in range(len(mat)):
            line.append(mat[col][row])
        Ws.append(line)
    wb.add_sheet(Ws)

    # Creation de B avec sa matrice d'incertitude
    Ws = Worksheet(wb, title="Flux elem")
    Ws.freeze_panes = "A2"
    header = ["id", "compartment", "substance", "subcompartment"]
    Ws.append(header)
    for EF in EF_list:
        L = [EF_list.index(EF)]
        L.append(EF)
        Ws.append(L)
    wb.add_sheet(Ws)

    Ws = Worksheet(wb, title="B")
    Ws.freeze_panes = "B2"
    mat = MATB.toarray()
    header = ["B"]
    for UP in UP_list_desag:
        header.append(UP_list_desag[UP]["process"])
    Ws.append(header)
    for row in range(len(mat)):
        line = [row]
        for col in range(len(mat[row])):
            line.append(mat[row][col])
        Ws.append(line)
    wb.add_sheet(Ws)

    Ws = Worksheet(wb, title="incertitude B")
    Ws.freeze_panes = "B2"
    mat = incertitude["intervention"]
    header = ["incertitude B"]
    for UP in UP_list_desag:
        header.append(UP_list_desag[UP]["process"])
    Ws.append(header)
    for row in range(len(mat[0])):
        line = [row]
        for col in range(len(mat)):
            line.append(mat[col][row])
        Ws.append(line)
    wb.add_sheet(Ws)

    wb.save(filename)

    print "fichier enregistre : MAT.xlsx"