예제 #1
0
    def noteCompany(self, title, company, location, url, placeScraped,
                    datePosted):
        if "path" in self.path and self.path['path'] != "":
            columns = [
                'Title', 'Company', 'Location', 'URL', 'Site', 'Date Posted',
                'Date Scraped', 'Would You Like To Scrape Emails?',
                'Emails Scraped/Attempted', 'Date Emails Scraped',
                'Would you like to email?', 'Have Emailed', 'Date Emailed',
                'Applied To (This one you\'ll have to manager on your own)',
                'Applied To Date (Again, you\'ll have to manage this)'
            ]
            job = [(title, company, location, url, placeScraped, datePosted,
                    datetime.datetime.now().strftime("%x"), None, None, None,
                    None, None, None, None, None)]
            if os.path.exists(self.path['path'] +
                              '/jobs/scraped_jobs.xlsx') == False:
                excel_writer = StyleFrame.ExcelWriter(
                    self.path['path'] + '/jobs/scraped_jobs.xlsx')
                df = pd.DataFrame(job, columns=columns)
                sf = StyleFrame(df)
                sf.to_excel(excel_writer=excel_writer,
                            row_to_add_filters=0,
                            best_fit=('Title', 'Company', 'Location', 'URL',
                                      'Site', 'Date Posted', 'Date Scraped'))
                excel_writer.save()
            else:
                df = pd.read_excel(self.path['path'] +
                                   '/jobs/scraped_jobs.xlsx',
                                   index=False)
                # check if job has already been scraped
                if len(df.loc[(df.Title == title)
                              & (df.Company == company)]) == 0:
                    df2 = pd.DataFrame(job, columns=columns)
                    dfnew = df.append(df2, ignore_index=True)
                    excel_writer = StyleFrame.ExcelWriter(
                        self.path['path'] + '/jobs/scraped_jobs.xlsx')
                    sf = StyleFrame(dfnew)
                    sf.to_excel(excel_writer=excel_writer,
                                row_to_add_filters=0,
                                best_fit=('Title', 'Company', 'Location',
                                          'URL', 'Site', 'Date Posted',
                                          'Date Scraped'))
                    excel_writer.save()

        else:
            print(
                "Remember that issue I noted earlier? Well, we finally hit it.\n I have wrote the scraped stuff into a text file that is found within this applications folders, and may be hard to reach..."
            )
            with open("./files/jobsearch.txt", "a+") as f:
                text = title + " " + company + " " + location + " " + url + "\n"
                f.write(text)
예제 #2
0
    def noteEmails(self, emails, name, company, title, site, verified):
        if "path" in self.path and self.path['path'] != "":
            columns = [
                "Name", "Email", "Title", "Company", "Site", "Verified",
                "Want To Email", "Have Emailed"
            ]
            if os.path.exists(self.path['path'] +
                              '/emails/scraped_emails.xlsx') == False:
                emailsDf = []
                for email in emails:
                    emailsDf.append((name, email, title, company, site,
                                     verified, None, None))
                excel_writer = StyleFrame.ExcelWriter(
                    self.path['path'] + '/emails/scraped_emails.xlsx')
                df = pd.DataFrame(emailsDf, columns=columns)
                sf = StyleFrame(df)
                sf.to_excel(excel_writer=excel_writer,
                            row_to_add_filters=0,
                            best_fit=('Name', 'Email', 'Title', 'Company',
                                      'Site', 'Verified'))
                excel_writer.save()
            else:
                df = pd.read_excel(self.path['path'] +
                                   '/emails/scraped_emails.xlsx',
                                   index=False)
                emailsDf = []
                for email in emails:
                    # check if email has already been scraped
                    if len(df.loc[(df.Email == email)]) == 0:
                        emailsDf.append((name, email, title, company, site,
                                         verified, None, None))
                if len(emailsDf):
                    df2 = pd.DataFrame(emailsDf, columns=columns)
                    dfnew = df.append(df2, ignore_index=True)
                    excel_writer = StyleFrame.ExcelWriter(
                        self.path['path'] + '/emails/scraped_emails.xlsx')
                    sf = StyleFrame(dfnew)
                    sf.to_excel(excel_writer=excel_writer,
                                row_to_add_filters=0,
                                best_fit=('Name', 'Email', 'Title', 'Company',
                                          'Site', 'Verified'))
                    excel_writer.save()

        else:
            print(
                "Remember that issue I noted earlier? Well, we finally hit it.\n I have wrote the scraped stuff into a text file that is found within this applications folders, and may be hard to reach..."
            )
            with open("./files/jobsearch.txt", "a+") as f:
                text = title + " " + company + " " + location + " " + url + "\n"
                f.write(text)
예제 #3
0
 def setUp(self):
     self.ew = StyleFrame.ExcelWriter(TEST_FILENAME)
     self.sf = StyleFrame({'a': ['col_a_row_1', 'col_a_row_2', 'col_a_row_3'],
                           'b': ['col_b_row_1', 'col_b_row_2', 'col_b_row_3']}, self.default_styler_obj)
     self.apply_column_style = partial(self.sf.apply_column_style, styler_obj=self.styler_obj_1, width=10)
     self.apply_style_by_indexes = partial(self.sf.apply_style_by_indexes, styler_obj=self.styler_obj_1, height=10)
     self.apply_headers_style = partial(self.sf.apply_headers_style, styler_obj=self.styler_obj_1)
예제 #4
0
    def get_daily_report_data(self):

        file_name = "%s/report/data/lab_job_daily_report/lab_job_daily_report_%s.xlsx"

        now = datetime.datetime.now()
        now_s = now.strftime("%Y-%m-%d %H-%m-%s")
        file_name = file_name % (settings.RUN_DIR, now_s)

        sqls = self.get_yesterday_sql()

        sql = sqls['lab_job_hc']
        data = self.get_data(sql)

        if len(data['items']) > 0:
            ew = StyleFrame.ExcelWriter(file_name)
            self.write2xl(ew, data['titles'], data['items'],
                          "HC订单明细%s" % sqls['title_parameters'])

            for item in data['items']:
                logging.critical(item.lab_number)
                lbo = LabOrder.objects.get(lab_number=item.lab_number)
                lbo.coating_sku = 'HMC'
                lbo.coating_name = 'HMC'
                lbo.comments_inner += '|System Changed HC to HMC'
                lbo.save()

        else:
            return 'NULL'

        return file_name
예제 #5
0
    def get_daily_report_sales_data(self):
        file_name = "%s/report/data/finance_daily_report/finance_daily_report_sales_%s.xlsx"

        now = datetime.datetime.now()
        now_s = now.strftime("%Y-%m-%d")
        file_name = file_name % (settings.RUN_DIR, now_s)
        ew = StyleFrame.ExcelWriter(file_name)

        items = []
        items.append('Day')
        items.append('总销售额')
        items.append('产品销售')
        items.append('订单数量')
        items.append('眼镜数量')
        items.append('总运费')
        items.append('加急运费')
        items.append('普通运费')
        items.append('平均单价')
        items.append('平均眼镜')
        items.append('车房单')
        items.append('车房占比')
        items.append('车房金额占比')
        items.append('退款')
        items.append('下单日退运费')
        items.append('重做')
        items.append('保险销售')

        data = self.__get_daily_report_sales_data()
        self.write2xl(ew, items, data['items'], "网站每日销售(美国西部时间)通报-%s" % now_s)

        return file_name
예제 #6
0
def main():
    word1 = input("要搜索的职业:")
    word = urllib.request.quote(word1)
    df_all = pd.DataFrame()

    for page in range(1, 20):
        print(f'正在读取第{page}页的数据')
        df = get_all(word, page)
        df_all = df_all.append(df)
        df_all.to_excel('猎聘-{}.xlsx'.format(word1),
                        encoding='utf_8_sig',
                        index=False)
    print(f'已读取总共{page}页的数据')

    sf = StyleFrame.read_excel('猎聘-{}.xlsx'.format(word1))
    print('data read successful!')
    #sf.set_column_width(columns=['公司名','岗位信息'],width=200)
    sf.set_column_width_dict(col_width_dict={
        "公司名": 20,
        "岗位信息": 100,
        "招聘岗位": 20,
        '申请网址': 30
    })
    ew = StyleFrame.ExcelWriter('猎聘-{}.xlsx'.format(word1))
    sf.to_excel(ew)
    ew.save()
    print("data updated successful!")
예제 #7
0
 def setUpClass(cls):
     cls.ew = StyleFrame.ExcelWriter('test.xlsx')
     cls.style_kwargs = dict(bg_color=utils.colors.blue,
                             bold=True,
                             font='Impact',
                             font_color=utils.colors.yellow,
                             font_size=20,
                             underline=utils.underline.single)
     cls.styler_obj = Styler(**cls.style_kwargs)
     cls.openpy_style_obj = cls.styler_obj.create_style()
def styled_excel(file_input, dividends, prices):
    path = "C:\\Users\\matth\\Desktop\\style_version.xlsx"
    i = True
    if (dividends == True):
        while i == True:
            try:
                quarters_back = int(
                    input(
                        'How many quarters back of dividends of dividend data would you like?\n'
                    ))
                i = False
            except:
                print("Please enter an integer")

    #turn the info and earnings dataframes into spreadsheets
    stock_df, ticker_list = formatData(file_input)
    sf = StyleFrame(stock_df)
    col_list = list(stock_df.columns)
    writer = StyleFrame.ExcelWriter(path)
    sf.to_excel(excel_writer=writer,
                sheet_name='Stock Info',
                best_fit=col_list)
    earnings_df = get_earnings_dates(stock_df)
    sf_earnings = StyleFrame(earnings_df)
    col_list_earnings = list(earnings_df.columns)

    sf_earnings.to_excel(excel_writer=writer,
                         sheet_name='Upcoming Earnings Dates',
                         best_fit=col_list_earnings)

    if (dividends == True):
        for ticker in ticker_list:
            get_dividends(ticker, writer, quarters_back)

    if (prices == True):
        start_in = input("Start date (YYYY-MM-DD): ")
        end_in = input("End date (YYYY-MM-DD): ")
        start = (pd.to_datetime(start_in) +
                 pd.tseries.offsets.BusinessDay(n=0)).strftime("%Y-%m-%d")
        end = (pd.to_datetime(end_in) +
               pd.tseries.offsets.BusinessDay(n=1)).strftime("%Y-%m-%d")

        for ticker in ticker_list:
            get_prices(ticker, writer, start, end)

    writer.save()

    #plotting dividends and historical prices
    if (dividends == True):
        plot_dividends(ticker_list, path, quarters_back)

    if (prices == True):
        plot_prices(ticker_list, path, start, end)
    def combine_csvs(self, delete_batches: bool = False, to_excel: bool = True):
        """Combines batch csv output files into the final csv file and optionally an excel file

        Args:
            delete_batches (bool): Whether the batch csv files should be deleted after stitching them to the combined
                csv file. Defaults to False (not deleting the batch csv files)
            to_excel (bool): Whether the csv file should also be saved as an excel file. Defaults to True (creating the
                Excel file)

        """
        logger = sip.MapsXmlParser.create_logger(self.log_file_path)

        items = os.listdir(self.csv_base_path)
        stitched_csvs = []
        for name in items:
            if name.endswith('_stitched.csv'):
                stitched_csvs.append(name)

        stitched_csvs.sort()
        annotation_tiles = {}
        for csv in stitched_csvs:
            current_tiles = sip.MapsXmlParser.load_annotations_from_csv(self.base_header, self.csv_base_path / csv)
            for key in current_tiles:
                annotation_tiles[key] = current_tiles[key]
        csv_output_path = self.csv_base_path / (self.project_name + '_fused' + '.csv')
        sip.MapsXmlParser.save_annotation_tiles_to_csv(annotation_tiles, self.base_header, csv_output_path)

        # Delete all the batch files if the option is set for it
        if delete_batches:
            for name in items:
                os.remove(self.csv_base_path / name)

        if to_excel:
            logger.info('Saving the annotations csv as an excel file')
            data_frame = pd.read_csv(csv_output_path)
            excel_output_path = self.csv_base_path / (self.project_name + '_fused' + '.xlsx')

            # Create a list of headers whose column should be expanded to fit the content
            fitting_headers = list(data_frame.columns.values)
            non_fitting_headers = ['img_path', 'surrounding_tile_names', 'surrounding_tile_exists']
            for header in non_fitting_headers:
                if header in fitting_headers:
                    fitting_headers.remove(header)

            no_wrap_text_style = Styler(wrap_text=False, shrink_to_fit=False)
            excel_writer = StyleFrame.ExcelWriter(excel_output_path)
            styled_df = StyleFrame(data_frame, styler_obj=no_wrap_text_style)
            styled_df.to_excel(excel_writer, 'MapsAnnotations', index=False, columns_and_rows_to_freeze='A1',
                               best_fit=fitting_headers)
            excel_writer.save()
예제 #10
0
 def setUpClass(cls):
     cls.ew = StyleFrame.ExcelWriter(TEST_FILENAME)
     cls.styler_obj_1 = Styler(
         bg_color=utils.colors.blue,
         bold=True,
         font='Impact',
         font_color=utils.colors.yellow,
         font_size=20,
         underline=utils.underline.single,
         horizontal_alignment=utils.horizontal_alignments.left,
         vertical_alignment=utils.vertical_alignments.center)
     cls.styler_obj_2 = Styler(bg_color=utils.colors.yellow)
     cls.openpy_style_obj_1 = cls.styler_obj_1.create_style()
     cls.openpy_style_obj_2 = cls.styler_obj_2.create_style()
예제 #11
0
파일: convert.py 프로젝트: Nakosa/Converter
def convert_uber(filename):
    df = pd.read_csv(filename)
    df = df.fillna(0)
    drivers = set(df['Driver Name'])
    out_data = []

    for driver in drivers:
        driver_calc = {}
        driver_data = df[df['Driver Name'] == driver]

        name = driver_data['Driver Name'].values[0]
        total = driver_data["Fare"].values.sum()
        to_parking = total * PARK_PERCENTAGE_UBER
        total_payment = driver_data["Total Payment"].values.sum()
        to_driver = total_payment - to_parking

        driver_calc['name'] = ' '.join(name.split()[:2])
        driver_calc['total'] = round(total, 2)
        driver_calc['total_payment'] = round(total_payment, 2)
        driver_calc['to_driver'] = round(to_driver, 2)
        driver_calc['to_parking'] = round(to_parking, 2)

        out_data.append(driver_calc)

    driver_out_data = {
        'name': [d['name'] for d in out_data],
        'total': [d['total'] for d in out_data],
        'total_payment': [d['total_payment'] for d in out_data],
        'to_driver': [d['to_driver'] for d in out_data],
        'to_parking': [d['to_parking'] for d in out_data],
    }

    for key in driver_out_data.keys():
        if key != 'name':
            driver_out_data[key].append(round(sum(driver_out_data[key]), 2))
        else:
            driver_out_data[key].append(None)

    df_out = pd.DataFrame(driver_out_data)
    sf_out = StyleFrame(df_out)
    sf_out.set_column_width(columns=sf_out.columns, width=30)

    out_name, _ = os.path.splitext(filename)
    excel_writer = StyleFrame.ExcelWriter('%s-out.xlsx' % (out_name))
    sf_out.to_excel(
        excel_writer=excel_writer,
        header=True,
        columns=['name', 'total', 'total_payment', 'to_driver', 'to_parking'])
    excel_writer.save()
예제 #12
0
 def notePerson(self, person):
     if "path" in self.path:
         df = pd.read_excel(self.path['path'] +
                            '/emails/scraped_emails.xlsx',
                            index=False)
         df.loc[(df["Email"] == person["Email"], "Have Emailed")] = ["Y"]
         excel_writer = StyleFrame.ExcelWriter(
             self.path['path'] + '/emails/scraped_emails.xlsx')
         sf = StyleFrame(df)
         sf.to_excel(excel_writer=excel_writer,
                     row_to_add_filters=0,
                     best_fit=('Name', 'Email', 'Title', 'Company', 'Site',
                               'Verified'))
         excel_writer.save()
     else:
         raise ValueError('Couldn\'t find the path file')
예제 #13
0
 def noteCompany(self, company):
     if "path" in self.path:
         df = pd.read_excel(self.path['path'] + '/jobs/scraped_jobs.xlsx',
                            index=False)
         df.loc[(df["Company"] == company["Company"],
                 ["Have Emailed", "Date Emailed"
                  ])] = ["Y", datetime.datetime.now().strftime("%x")]
         excel_writer = StyleFrame.ExcelWriter(self.path['path'] +
                                               '/jobs/scraped_jobs.xlsx')
         sf = StyleFrame(df)
         sf.to_excel(excel_writer=excel_writer,
                     row_to_add_filters=0,
                     best_fit=('Title', 'Company', 'Location', 'URL',
                               'Date Posted', 'Date Scraped'))
         excel_writer.save()
     else:
         raise ValueError('Couldn\'t find the path file')
예제 #14
0
def styledf2excel(outfile_path, df_all, df_pivot, df_client_info, df_ave):
    print(outfile_path)
    ew = StyleFrame.ExcelWriter(outfile_path)
    sf_all = style_df_all(df_all)
    # sf_all = datetime_style_df(sf_all)
    sf_pivot = style_df(df_pivot)
    sf_client = style_df(df_client_info)
    sf_ave = style_df(df_ave)
    sf_all.to_excel(
        ew,
        sheet_name="原始流水标记",
        columns_and_rows_to_freeze='A2',
        row_to_add_filters=0,
    )
    sf_pivot.to_excel(ew, sheet_name="各月份有效流水统计", index=False)
    sf_ave.to_excel(ew, sheet_name="日均存款余额", index=False)
    sf_client.to_excel(ew, sheet_name="客户信息", index=False)
    ew.save()
예제 #15
0
파일: export_dfs.py 프로젝트: janjusti/dcma
 def df_to_xls(self, list_dfs, list_sheet_names, folder_path):
     # create list of styleframes based on dfs
     list_sfs = []
     for df in list_dfs:
         list_sfs.append(StyleFrame(df))
     # apply cell patterns if any
     if not list_dfs[0].empty: self.apply_highlights_mut_rows(list_sfs[0], list_dfs[0])
     # export
     file_path = self.ext_remover(str(folder_path), '.fasta') + '-report.xlsx'
     # best_fit factors
     StyleFrame.A_FACTOR = 5
     StyleFrame.P_FACTOR = 1.2
     with StyleFrame.ExcelWriter(file_path) as writer:
         for df_idx in range(0, len(list_sfs)):
             if not list_dfs[df_idx].empty:
                 list_sfs[df_idx].to_excel(
                     writer, 
                     sheet_name=list_sheet_names[df_idx], 
                     index=False,
                     best_fit=list(list_dfs[df_idx].columns.values)
                 )
    def _handle_export_button_click(self):
        utils.create_missing()
        path = QtWidgets.QFileDialog.getSaveFileName(
            self, "Сохранить",
            os.path.join(
                utils.get_exports_path(),
                utils.get_file_name_for_export(self.company_id, self.period)),
            "Файл Excel (*.xlsx)")
        self.export_button.setEnabled(False)
        if not path:
            return
        elif os.path.exists(path[0]):
            os.remove(path[0])
        headers = parsing.table_columns
        with StyleFrame.ExcelWriter(path[0]) as writer:
            export_data = [[float(cell) for cell in row[1:]]
                           for row in self.data]
            export_string_codes = [int(row[0]) for row in self.data]
            df = DataFrame(data=export_data,
                           columns=headers,
                           index=export_string_codes)
            df.index.name = "Код строки"
            sf = StyleFrame(df)
            sf.apply_headers_style(Styler(bold=True, font_size=14))
            sf.to_excel(writer,
                        sheet_name='Полная таблица',
                        index=True,
                        best_fit=headers)
            writer.save()

        self.export_button.setEnabled(True)
        result = QtWidgets.QMessageBox.question(
            self,
            "Успех!",
            "Данные успешно экспортированы!\nОткрыть файл?",
            buttons=QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
        if result == QtWidgets.QMessageBox.Yes:
            command = 'start' if Runtime.is_windows else 'xdg-open'
            subprocess.Popen([command, os.path.normpath(path[0])], shell=True)
예제 #17
0
    def as_xlsx_file(self):
        df = pd.DataFrame(
            data=self.days,
            columns=['number', 'start_hour', 'end_hour', 'amount'])
        df.loc[len(df)] = [''] * 4  # Empty row.

        total_working_days = self.total_working_days()
        total_working_days_row = ['סה"כ ימים', total_working_days, '', '']
        df.loc[len(df)] = total_working_days_row

        total_working_hours = self.total_working_hours()
        total_working_hours_row = ['סה"כ שעות', total_working_hours, '', '']
        df.loc[len(df)] = total_working_hours_row

        total_driving_km_row = ['נסיעות', self.driving_in_km, 'ק"מ', '']
        df.loc[len(df)] = total_driving_km_row

        user_info = [self.user.first_name, self.user.last_name, '', '']
        df.loc[len(df)] = user_info

        df.columns = ['יום', 'שעת התחלה', 'שעת סיום', 'מספר גנים']
        sf = StyleFrame(df)
        sf.set_column_width_dict({
            ('שעת התחלה', 'שעת סיום'): 16,
            ('יום', 'מספר גנים'): 13
        })
        sf.apply_style_by_indexes(indexes_to_style=sf.index[-4:-1],
                                  styler_obj=Styler(bold=True),
                                  cols_to_style='יום')
        output = BytesIO()
        ew = StyleFrame.ExcelWriter(output)
        sf.to_excel(
            ew,
            right_to_left=True,
            row_to_add_filters=0,
        ).save()

        return output
예제 #18
0
    def show_excel(self, style_frames: List[StyleFrame], sheet_names: List[str], parameters: GraphParameters,
                   graph_results: Callable[[GraphParameters], None],
                   coefficients: List[Tuple[List[List[float]], List[List[float]]]]=None,
                   baking_coefficients: List[List[float]]=None):
        excel_writer = StyleFrame.ExcelWriter(self.excel_file_path)
        for style_frame, sheet_name in zip(style_frames, sheet_names):
            style_frame.to_excel(excel_writer=excel_writer, row_to_add_filters=0, sheet_name=sheet_name)

        if coefficients is not None:
            worksheet = excel_writer.book.create_sheet("Curve Fit")
            self.write_curve_fit_coefficients(coefficients, worksheet)
        if baking_coefficients is not None:
            worksheet = excel_writer.book.create_sheet("Curve Fit")
            self.write_coefficients(worksheet, 1, baking_coefficients)

        parameters.chart_sheet = excel_writer.book.create_sheet(title="Chart")
        parameters.data_sheet = excel_writer.sheets[sheet_names[0]]
        graph_results(parameters)

        excel_writer.book.create_sheet("Notes")

        excel_writer.save()
        excel_writer.close()
        os.startfile('"{}"'.format(self.excel_file_path.replace("\\", "\\\\")))
df_fact_PCHITAZN = pd.read_sql(fact_PCHITAZN, conn_sib, params={'d': date})

df_fact_PCHITAZN['ДАТА'] = df_fact_PCHITAZN['ДАТА'].astype('str')

conn_eur.close()
conn_sib.close()

df_Four_x_stor_INT = df_Four_x_stor_INT_eur.append(df_Four_x_stor_INT_sib)

# Для PCHITAZN можно этот вариант форматирования массива и записи в xlsx
style = Styler(font_size=10,
               horizontal_alignment=utils.horizontal_alignments.right)

columns = df_fact_PCHITAZN.axes[1]
PCHITAZN = StyleFrame(df_fact_PCHITAZN)
excel_writer = StyleFrame.ExcelWriter(path_PCHITAZN)
for s in columns:
    PCHITAZN.set_column_width(s, 9 + str(s).__len__())

PCHITAZN.apply_column_style(cols_to_style=columns,
                            styler_obj=style,
                            style_header=True)
PCHITAZN.to_excel(excel_writer=excel_writer, index=False)
excel_writer.save()
excel_writer.close()

# Для склееного файла почему-то не катит предыдущий вариант форматирования массива данных, поэтому делаем так ->

# Экспортируем выгруженные данные в xlsx
df_Four_x_stor_INT.to_excel(path_inter, index=False)
예제 #20
0
    def get_daily_report_data(self):

        file_name = "%s/report/data/finance_daily_report/finance_daily_report_%s.xlsx"

        now = datetime.datetime.now()
        now_s = now.strftime("%Y-%m-%d")
        file_name = file_name % (settings.RUN_DIR, now_s)
        ew = StyleFrame.ExcelWriter(file_name)

        sqls = self.get_yesterday_sql()
        sqls['title_parameters'] = ""

        # sql = sqls['sums']
        # logging.debug(sql)
        data = self._get_daily_sums()
        self.write2xl(ew, data['titles'], data['items'],
                      "非自有库存镜片收货汇总%s" % sqls['title_parameters'])

        sql = sqls['detail']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "非自有库存镜片收货明细%s" % sqls['title_parameters'])

        sql = sqls['sums_wms_in_lens']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "自有库存镜片入库汇总-%s" % sqls['title_parameters'])

        sql = sqls['detail_wms_in_lens']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "自有库存镜片入库明细-%s" % sqls['title_parameters'])

        sql = sqls['sums_wms_out_lens']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "自有库存镜片出库汇总-%s" % sqls['title_parameters'])

        sql = sqls['detail_wms_out_lens']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "自有库存镜片出库明细-%s" % sqls['title_parameters'])

        sql = sqls['sums_wms_in']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "镜架和附件入库汇总-%s" % sqls['title_parameters'])

        sql = sqls['detail_wms_in']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "镜架和附件入库明细-%s" % sqls['title_parameters'])

        sql = sqls['sums_wms_out']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "镜架和附件出库汇总-%s" % sqls['title_parameters'])

        sql = sqls['detail_wms_out']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "镜架和附件出库明细-%s" % sqls['title_parameters'])

        sql = sqls['frame_wms_struct']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "镜架和附件最新库存量-%s" % sqls['title_parameters'])

        sql = sqls['lens_wms_struct']
        data = self.get_data(sql)
        self.write2xl(ew, data['titles'], data['items'],
                      "镜片最新库存量-%s" % sqls['title_parameters'])

        return file_name
예제 #21
0
df_c_sib = pd.read_sql(query_c_sib, conn_sib, params={':d': date})
if df_c_sib.shape[0] == 0:
    print(
        'Прервано! Отсутствуют данные по коэффициенту неготовности в БД Сибири'
    )
    raise SystemExit
df_c_eur['TARGET_DATE'] = df_c_eur['TARGET_DATE'].astype('str')
df_c_sib['TARGET_DATE'] = df_c_sib['TARGET_DATE'].astype('str')

# Сохраняем отчеты и форматируем их
style = Styler(font_size=10,
               horizontal_alignment=utils.horizontal_alignments.right)

columns = df_c_avg.axes[1]
df_c_avg = StyleFrame(df_c_avg)
excel_writer = StyleFrame.ExcelWriter(path_c_avg)
for s in columns:
    df_c_avg.set_column_width(s, 7 + str(s).__len__())
df_c_avg.apply_column_style(cols_to_style=columns,
                            styler_obj=style,
                            style_header=True)
df_c_avg.to_excel(excel_writer=excel_writer,
                  sheet_name='Среднее значение коэффициента',
                  index=False)
excel_writer.save()
excel_writer.close()

columns = df_c_eur.axes[1]
df_c_eur = StyleFrame(df_c_eur)
df_c_sib = StyleFrame(df_c_sib)
excel_writer = StyleFrame.ExcelWriter(path_c)
예제 #22
0
 def setUpClass(cls):
     cls.ew = StyleFrame.ExcelWriter(TEST_FILENAME)
     cls.styler_obj = Styler(bg_color=utils.colors.blue, bold=True, font='Impact', font_color=utils.colors.yellow,
                             font_size=20, underline=utils.underline.single)
     cls.openpy_style_obj = cls.styler_obj.create_style()
예제 #23
0
def parse_page (driver, links):

    driver.execute_script("window.open('');")
    tabs = driver.window_handles
    driver.switch_to.window(tabs[1])

    datalist = []

    for link in links:

        proc_info = []

        proc_info.append(link)
        if 'regNumber=' in link:
            proc_info.append(link.split("regNumber=")[1])
        driver.get(link)



        try:
            wait = WebDriverWait(driver, 10)
            wait.until(EC.presence_of_all_elements_located((By.TAG_NAME, 'td')))

        finally:
            print('No exception')

        elements = driver.find_elements_by_tag_name('td')

        for el in elements:

            has_protocols = True

            ###### получаем URL ПРОТОКОЛА

            if ('ПРОТОКОЛ' in el.text):
                el.click()

                try:
                    wait = WebDriverWait(driver, 10)
                    wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'toolTipMenu')))
                except TimeoutException:
                    has_protocols = False
                finally:
                    print('No exception')

                if (has_protocols == True):
                    hover_link = driver.find_elements_by_class_name('toolTipMenu')[0]
                    hover = ActionChains(driver).move_to_element(hover_link)
                    try:
                        hover.perform()
                        elements = driver.find_elements_by_tag_name('li')

                        for el in elements:

                            if ('Печат' in el.text):
                                a = el.get_attribute('onclick')
                                url_prorocol = "{}{}".format(main_url, a.split("\'")[1])
                                print(url_prorocol)
                                proc_info.append(url_prorocol.split("=")[1])
                    except WebDriverException:
                        print ("Hover exception")


                break

            ###### Получаем Общие сведения о закупке



        try:
            wait = WebDriverWait(driver, 10)
            wait.until(EC.presence_of_all_elements_located((By.TAG_NAME, 'td')))
        finally:
            print('No exception')

        td_menu = driver.find_elements_by_tag_name('td')

        for tds in td_menu:


            if ('ОБЩАЯ' in tds.text):
                tds.click()

                try:
                    wait = WebDriverWait(driver, 10)
                    wait.until(EC.presence_of_all_elements_located((By.TAG_NAME, 'td')))

                finally:
                    print('No exception')

                td_inside = driver.find_elements_by_tag_name('td')

                previous_element = ''

                for tds_in in td_inside:

                    if ('ИНН' in previous_element):
                        print('ИНН:' + tds_in.text)
                        proc_info.append(tds_in.text)
                    if ('Наименование организации' in previous_element):
                        print('Наименование организации:' + tds_in.text)
                        proc_info.append(tds_in.text)
                    if ('Дата размещения текущей редакции извещения' in previous_element):
                        print('Дата размещения текущей редакции извещения:' + tds_in.text)
                        proc_info.append(tds_in.text)
                    if ('Наименование закупки' in previous_element):
                        print('Наименование закупки:' + tds_in.text)
                        proc_info.append(tds_in.text)


                    previous_element = tds_in.text
                break

        ###### Получаем ДОКУМЕНТЫ 
        """
        try:
            wait = WebDriverWait(driver, 10)
            wait.until(EC.presence_of_all_elements_located((By.TAG_NAME, 'td')))
        finally:
            print('No exception')

        td_menu = driver.find_elements_by_tag_name('td')

        for tds in td_menu:

            if ('ДОКУМЕНТЫ' in tds.text):
                tds.click()

                try:
                    wait = WebDriverWait(driver, 10)
                    wait.until(EC.presence_of_all_elements_located((By.TAG_NAME, 'td')))

                finally:
                    print('No exception')

                elem = driver.find_elements_by_xpath("//a[@class='epz_aware']")

                temp_str = ''

                for epz_aware in elem:
                    temp_str = temp_str + "<a href=\"" + epz_aware.get_property('href') + "\">"+epz_aware.text+"</a>"




                proc_info.append([temp_str])

                break
        """

        datalist.append(proc_info)

    my_list = pd.DataFrame(datalist)



    output_filename = 'links.xlsx'



    st = Styler(wrap_text=True, shrink_to_fit=True)

    StyleFrame(my_list, styler_obj=st)

    writer = StyleFrame.ExcelWriter(output_filename)

    my_list.to_excel(writer, 'Исходные(текущие)', index=False)

    writer.save()

    driver.close()
예제 #24
0
        
        if valid_issue == False:
            print ('Issue not assigned to anyone!')
            continue

        if 'status' in issue.raw['fields'] and not (issue.raw['fields']['status'] is None):
            if 'statusCategory' in issue.raw['fields']['status'] and not (issue.raw['fields']['status']['statusCategory'] is None):
                if 'name' in issue.raw['fields']['status']['statusCategory'] and not (issue.raw['fields']['status']['statusCategory']['name'] is None):
                    print ('Current status=' + issue.raw['fields']['status']['statusCategory']['name'])
                    state = issue.raw['fields']['status']['statusCategory']['name']
                    if state != 'Done':
                        new_dic[assignee][2] += 1
                    if (create_date > start_date and create_date < end_date):
                        print ('This issue created in this time')
                        new_dic[assignee][0] += 1
                    if (update_date > start_date) and (update_date < end_date) and (state == 'Done'):
                        print ('This issue completed in this time')
                        new_dic[assignee][1] += 1

df = pandas.DataFrame(new_dic)
df.index = ['Tasks Created', 'Tasks Completed', 'Tasks pending']
print(df.T)

#export output to excel sheet
writer = StyleFrame.ExcelWriter("taskreport.xlsx")
sf=StyleFrame(df.T)
sf.apply_column_style(cols_to_style=df.T.columns, styler_obj=Styler(bg_color=utils.colors.white, bold=True, font=utils.fonts.arial,font_size=8),style_header=True)
sf.apply_headers_style(styler_obj=Styler(bg_color=utils.colors.blue, bold=True, font_size=8, font_color=utils.colors.white,number_format=utils.number_formats.general, protection=False))
sf.to_excel(writer, sheet_name='Sheet1', index=True)
writer.save()
예제 #25
0
 def __init__(self, input_path=None, output_path=None, input_json=None):
     self.input_path = input_path
     self.input_json = input_json
     self.excel_writer = StyleFrame.ExcelWriter(output_path)
     self.col_names_to_width = defaultdict(dict)
예제 #26
0
파일: convert.py 프로젝트: Nakosa/Converter
def convert_gett(filename):
    #все данные из экселя
    df = pd.read_excel(filename)
    #уникальные индексы водителей
    drivers = set(df['ID водителя'])

    out_data = []

    driver_sum = {
        'name': 'ИТОГО',
        'plan': 0,
        'cash': 0,
        'driver_salary': 0,
        'parking_salary': 0,
        'drives': 0,
        'tips': 0,
        'toll_roads': 0,
        'cancels': 0,
    }

    for driver in drivers:
        #данные по водителю
        driver_data = df[df['ID водителя'] == driver]
        #отменённые заказы
        cancels = driver_data['Тип оплаты'].str.contains('Отмененн')
        #состоявшиеся заказы
        driver_data_good = driver_data[~cancels]
        #не состоявшиеся заказы
        driver_data_cancels = driver_data[cancels]

        data_good_count = driver_data_good.shape[0]  #XX
        #если прошедших заказов нет (driver_data_good.shape[0] равно 0)
        if not data_good_count:
            continue

        #ФИО
        name = driver_data['Имя водителя'].values[0]
        #план по состоявшимся заказам
        to_drv_total = driver_data['Тариф для водителя всего'].values.sum()  #I
        #план по состоявшимся заказам без чаевых
        to_drv_without_tips = driver_data_good[
            'Тариф для водителя без чаевых'].values.sum()  #O
        #наличка от клиента
        from_psgr = driver_data_good['Получено от клиента'].values.sum()  #H
        #чаевые от клиента
        tips = driver_data_good['Чаевые для водителя'].values.sum()  #K
        #платные дороги
        toll_roads_array = driver_data_good[
            'Стоимость парковки / платной дороги'].values
        toll_roads = sum([x for x in toll_roads_array if x >= 0])  #U
        #отменённые
        cancels_money = driver_data_cancels[
            'Тариф для водителя всего'].values.sum()

        #комиссия парка
        to_parking = (to_drv_total + toll_roads) * PARK_PERCENTAGE_GETT  #PP
        #комиссия gett
        to_gett = (to_drv_without_tips - toll_roads) * PERCENTAGE_GETT  #PG
        #выдать водителю
        to_drv_perc = to_drv_total - from_psgr - to_parking - to_gett  #SS

        driver_calc = {}
        driver_calc['name'] = ' '.join(name.split()[:2])
        driver_calc['plan'] = round(to_drv_total, 2)
        driver_calc['cash'] = round(from_psgr, 2)
        driver_calc['driver_salary'] = round(to_drv_perc, 2)
        driver_calc['parking_salary'] = round(to_parking, 2)
        driver_calc['drives'] = driver_data.shape[0]
        driver_calc['tips'] = round(tips, 2)
        driver_calc['toll_roads'] = round(toll_roads, 2)
        driver_calc['cancels'] = round(cancels_money, 2)
        out_data.append(driver_calc)

        driver_sum['plan'] += driver_calc['plan']
        driver_sum['cash'] += driver_calc['cash']
        driver_sum['driver_salary'] += driver_calc['driver_salary']
        driver_sum['parking_salary'] += driver_calc['parking_salary']
        driver_sum['drives'] += driver_calc['drives']
        driver_sum['tips'] += driver_calc['tips']
        driver_sum['toll_roads'] += driver_calc['toll_roads']
        driver_sum['cancels'] += driver_calc['cancels']

    out_data.append(driver_sum)

    driver_out_data = {
        COLLS_NAME['name']: [d['name'] for d in out_data],
        COLLS_NAME['plan']: [d['plan'] for d in out_data],
        COLLS_NAME['cash']: [d['cash'] for d in out_data],
        COLLS_NAME['driver_salary']: [d['driver_salary'] for d in out_data],
        COLLS_NAME['parking_salary']: [d['parking_salary'] for d in out_data],
        COLLS_NAME['drives']: [d['drives'] for d in out_data],
        COLLS_NAME['tips']: [d['tips'] for d in out_data],
        COLLS_NAME['toll_roads']: [d['toll_roads'] for d in out_data],
        COLLS_NAME['cancels']: [d['cancels'] for d in out_data],
    }
    """
    for key in driver_out_data.keys():
        if key != 'name':
            driver_out_data[key].append(round(sum(driver_out_data[key]), 2))
        else:
            driver_out_data[key].append(None)
    """

    df_out = pd.DataFrame(driver_out_data)
    sf_out = StyleFrame(df_out)
    sf_out.set_column_width(columns=sf_out.columns, width=20)

    out_name, ext = os.path.splitext(filename)
    excel_writer = StyleFrame.ExcelWriter('%s-out%s' % (out_name, ext))
    sf_out.to_excel(excel_writer=excel_writer,
                    header=True,
                    columns=[
                        COLLS_NAME['name'], COLLS_NAME['plan'],
                        COLLS_NAME['cash'], COLLS_NAME['driver_salary'],
                        COLLS_NAME['parking_salary'], COLLS_NAME['drives'],
                        COLLS_NAME['tips'], COLLS_NAME['toll_roads'],
                        COLLS_NAME['cancels']
                    ])
    try:
        excel_writer.save()
    except Exception as e:
        print('Permission denied for output file')
        print('Error message:\r\n' + str(e))
    finally:
        pass