def control_room_start_fix_process(self, data, original): tables = Tables() excel = Files() google = Google() conflicts = [] updated_table = tables.export_table(original, with_index=True, as_list=False) for k in data.keys(): copyof_orig = copy.deepcopy(original) if "nameerror" in k: mid, _ = data[k].split(" - ") tables.filter_table_by_column(copyof_orig, "Account Id", "==", mid) row = tables.get_table_row(copyof_orig, 0) conflicts.append({"id": mid, "name": row["Name in SAP"]}) name_position = updated_table["Account Id"].index(mid) updated_table["Name OK in SFDC"][name_position] = "TRUE" if conflicts: self.control_room_run_process(CONTROL_ROOM_PROCESS_FIX_SFDC, conflicts) google.set_robocorp_vault(vault_name="googlecloud", vault_secret_key="credentials") google.init_drive(use_robocorp_vault=True) del updated_table["index"] excel.create_workbook(COMPARISON_EXCEL) excel.append_rows_to_worksheet(updated_table, header=True) excel.save_workbook() google.drive_upload_file(COMPARISON_EXCEL, GOOGLE_DRIVE_SYNC_FOLDER, overwrite=True)
def generate_data(user_count=100, feedback_count=5): fake = Faker() files = Files() files.create_workbook("userdata.xlsx") files.create_worksheet("profile", exist_ok=True) files.create_worksheet("feedback", exist_ok=True) users = [] names = [] for i in range(user_count): userprofile = fake.profile() if userprofile["name"] in names: print("name %s already exists", userprofile["name"]) continue userprofile.pop("website") userprofile.pop("current_location") files.append_rows_to_worksheet(userprofile, "profile", header=True) users.append(userprofile) for i in range(1, 16): selected_user = users[i] feedback = { "name": selected_user["name"], "feedback": choice(good_feedback) } print(feedback) files.append_rows_to_worksheet(feedback, "feedback", header=True) for i in range(17, 22): selected_user = users[i] feedback = { "name": selected_user["name"], "feedback": choice(neutral_feedback) } print(feedback) files.append_rows_to_worksheet(feedback, "feedback", header=True) for i in range(23, 28): selected_user = users[i] feedback = { "name": selected_user["name"], "feedback": choice(bad_feedback) } print(feedback) files.append_rows_to_worksheet(feedback, "feedback", header=True) files.remove_worksheet("Sheet") files.save_workbook()
class ExcelUtility: def __init__(self, path_to_excel_file: str): self.path_to_file = path_to_excel_file self.lib = Files() def open_file(self): if self.lib is None: self.lib = Files() self.lib.open_workbook(self.path_to_file) def set_active_sheet(self, sheet_name: str): self.lib.set_active_worksheet(sheet_name) def write_agencies_to_file(self, agencies: []): row_number: int = 2 for item in agencies: agency: AgencyModel = item self.lib.set_worksheet_value(row_number, 1, agency.name) self.lib.set_worksheet_value(row_number, 2, agency.amount) self.lib.set_worksheet_value(row_number, 3, agency.link) row_number += 1 def write_table_page_data_to_file(self, data: [], row_number: int = 2): for item in data: indv_invst_item: IndividualInvestmentsModel = item self.lib.set_worksheet_value(row_number, 1, indv_invst_item.uii) self.lib.set_worksheet_value(row_number, 2, indv_invst_item.uii_link) self.lib.set_worksheet_value(row_number, 3, indv_invst_item.bureau) self.lib.set_worksheet_value(row_number, 4, indv_invst_item.investment_title) self.lib.set_worksheet_value(row_number, 5, indv_invst_item.total_fy_spending) self.lib.set_worksheet_value(row_number, 6, indv_invst_item.type_) self.lib.set_worksheet_value(row_number, 7, indv_invst_item.cio_rating) self.lib.set_worksheet_value(row_number, 8, indv_invst_item.project_num) row_number += 1 return row_number def save_and_close_file(self) -> object: if self.lib is not None: self.lib.save_workbook(self.path_to_file) self.lib.close_workbook()