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
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)
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)
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)
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)
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)
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)
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'
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)
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"