コード例 #1
0
ファイル: main.py プロジェクト: dim-akim/Exam-Analizer
 def __init__(self, filename):
     """
     Открывает файл Excel с дополнительными атрибутами:
     name - название файла, который открыт
     sheet - активная страница для работы
     columns - кортеж с номерами столбцов, отвечающих за соответствующие поля
     begin_row - номер строки с первым участником
     subject_cell - ячейка с названием предмета
     subject - название предмета
     students - словарь с данными всех учеников в файле:
         ключ - номер и буква класса (например, 11Н)
         значение - список списков. Один вложенный список - данные одного ученика
         вложенный список - Класс, Ф, И, О, Краткий ответ, Развернутый ответ, Первичный балл, Оценка
     :param filename: путь к файлу Excel. Тип данных - str
     """
     # открываем файл excel
     self.file = lw(filename)
     # запоминаем имя файла
     self.name = filename
     # выбираем активную страницу для работы
     self.sheet = self.file.active
     # проверяем версию файла - для 9 или 11 класса
     page_version = self.set_page_version()
     # выбираем нужное из словаря с параметрами
     self.columns = versions[page_version]['columns']  # номера столбцов
     self.begin_row = versions[page_version]['begin_row']  # первая строка с данными ученика
     self.subject_cell = versions[page_version]['subject_cell']  # ячейка с названием предмета
     # запоминаем название предмета
     # self.subject = self.get_subject()
     # набираем словарь с данными учеников
     self.students = self.get_all_students()
コード例 #2
0
ファイル: test.py プロジェクト: dim-akim/Exam-Analizer
def test1():
    # Проверка работы параметра max_column
    file = lw('Результаты 2019/Пример.xlsx')
    page = file.active

    for i in range(1, page.max_column + 1):
        print(page.cell(row=11, column=i).value)
コード例 #3
0
ファイル: read_excel_data.py プロジェクト: cekai/ui_api_fw
 def __init__(self, excelpath, sheetname):
     ''''''
     self.excel_path = excelpath
     self.sheet_name = sheetname
     self.wb = lw(self.excel_path)
     self.ws = self.wb.get_sheet_by_name(self.sheet_name)
     self.rows = self.ws.max_row
     self.cols = self.ws.max_column
コード例 #4
0
def write_quantity_of_task(df, cntr):
    wb = lw(df)
    ws1 = wb["В тестировании"]
    quantity = ['Кол-во задач: ', '=СЧЁТЗ(E1:E99)/2']
    for col in range(0, len(quantity)):
        # Кол-во багов под данными по задаче
        _ = ws1.cell(column=col + 2, row=cntr + 1, value=quantity[col])
    wb.save(filename=df)
コード例 #5
0
ファイル: test.py プロジェクト: dim-akim/Exam-Analizer
def test3():
    # Проверяет работу ячейки-маркера типа файла
    filenames = ['Пример_11.xlsx', 'Пример_аппел.xlsx', 'Пример.xlsx']
    cell = 'B10'
    for name in filenames:
        book = lw(name)
        page = book.active
        print(page[cell].value)
コード例 #6
0
def combinedCellLength(excel_file, paramSheetname, rangeCell):
    sheet_ranges = lw(excel_file)[paramSheetname]
    combinedCells = sheet_ranges.merged_cell_ranges
    firstCombCell = combinedCells[rangeCell]
    s = str(firstCombCell).split(":")[1][0]
    LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    col = LETTERS.find(s) + 1
    return col
コード例 #7
0
def write_to_xls(task, bugs, df, lr=0):
    headers = [
        '№ задачи Jira', 'Приоритет', 'Статус', 'Тема:', 'Тестировщик',
        'Версия', 'Комментарий', '№ бага', 'Тема', 'Статус', 'Приоритет',
        'Исполнитель', 'Можно перенести'
    ]

    # assign the icon set to a rule
    border = Border(left=Side(border_style='double', color='FF000000'),
                    right=Side(border_style='double', color='FF000000'),
                    top=Side(border_style='double', color='FF000000'),
                    bottom=Side(border_style='double', color='FF000000'))

    wb = lw(df)
    ws1 = wb["В тестировании"]

    quan_h = ['Кол-во багов: ', str(len(bugs))]
    #Есть задача, баги, файл назначения и номер строки (который передаем)
    starts, ends = '', ''
    for row in range(lr + 1, lr + 2):
        # Запишем заголовки в файл
        starts = f'{get_column_letter(2)}{lr+1}'
        for col in range(0, len(headers)):
            _ = ws1.cell(column=col + 2, row=row, value=headers[col])

        # Записываем данные по задаче
        print(len(headers), len(task))
        for col in range(0, len(headers) - 7):
            _ = ws1.cell(column=col + 2, row=row + 1, value=task[col])

        for col in range(0, len(headers) - 8):
            if (col != len(headers) - 8):
                if bugs == []:
                    lr = row + 4
                else:
                    # Записываем данные по багам
                    #print(len(headers), len(bugs[1]))
                    for b in range(1, len(bugs) + 1):
                        #print(col+8)
                        _ = ws1.cell(column=col + 9,
                                     row=row + b,
                                     value=bugs[b - 1][col])
        ends = f'{get_column_letter(len(headers)+1)}{row+(len(bugs)+1)}'
        #print(f'Финальная ячейка: {ends}')
        lr = row + len(bugs) + 2
        for col in range(0, len(quan_h)):
            # Кол-во багов под данными по задаче
            _ = ws1.cell(column=col + 2, row=row + 2, value=quan_h[col])
        print(task[0], quan_h)
    rang = f'{starts}:{ends}'
    print(rang)
    style_range(ws1, rang, border=border)
    #ws1.conditional_formatting.add(rang, border = dxf)
    wb.save(filename=df)
    return lr
コード例 #8
0
def pyxl(p, sh, df):
    d_file = 'data\\' + df
    report_book = lw(d_file)
    current_sheet = report_book[sh]
    
    reading_txt=[]
    with open(p, "r") as csv_file:
        reader = csv.DictReader(csv_file, delimiter=';')
        
        for line in reader:
            reading_txt.append(line["№ в Jira|Тип задачи|Статус|Приоритет|Тема|Исполнитель|Тестировщик|Sprint"])
    #print(len(reading_txt))
    for row in range(3, (len(reading_txt)+3)):
        _ = current_sheet.cell(column = 2, row=row, value="{0}".format(reading_txt[row-3]))
    report_book.save(filename=d_file)
コード例 #9
0
ファイル: test.py プロジェクト: dim-akim/Exam-Analizer
def test5():
    # Проверяет новый подход в считывании таблицы и определении версии
    filenames = ['Пример_11.xlsx', 'Пример_аппел.xlsx', 'Пример.xlsx']
    for name in filenames:
        book = lw(name)
        page = book.active
        for row in range(1, page.max_row):
            a = page.cell(row=row, column=1).value
            # print(row, a)
            if a == '№':
                row += 1
                print(row)
                break
        student = []
        for i in range(1, page.max_column + 1):
            a = page.cell(row=row, column=i).value
            if a is not None:
                student.append(a)
        print(student)
コード例 #10
0
def check_zone(t_zon):
    f = lw('幼儿园名录.xlsx')  # 打开目录文档
    wb = f['Sheet1']  # 找到工作表
    for i in range(1,1814):     #定义所有的学校变量,如s1,s23
        vars()['s'+str(i)]=school(wb.cell(row=i+1, column=2).value,wb.cell(row=i+1, column=3).value,wb.cell(row=i+1, column=4).value,wb.cell(row=i+1, column=5).value,wb.cell(row=i+1, column=6).value)
    f.close()
    total,gong,gshi,gyi,ger,gsan,gpt,sshi,syi,ser,ssan,spt,si=0,0,0,0,0,0,0,0,0,0,0,0,0
    for i in range(1,1814):     #判断地区t_zon的数据
        if (t_zon in str(vars()['s'+str(i)].zone)) or (t_zon in str(vars()['s'+str(i)].add)):
            total+=1
            if ('公办' in str(vars()['s'+str(i)].pro)):
                gong+=1
                if ('示范' in str(vars()['s'+str(i)].lev)):
                    gshi+=1
                if ('一级' in str(vars()['s'+str(i)].lev)):
                    gyi+=1
                if ('二级' in str(vars()['s'+str(i)].lev)):
                    ger+=1
                if ('三级' in str(vars()['s'+str(i)].lev)):
                    gsan+=1
                if ('普通' in str(vars()['s'+str(i)].lev)):
                    gpt+=1
            else:
                si+=1
                if ('示范' in str(vars()['s'+str(i)].lev)):
                    sshi+=1
                if ('一级' in str(vars()['s'+str(i)].lev)):
                    syi+=1
                if ('二级' in str(vars()['s'+str(i)].lev)):
                    ser+=1
                if ('三级' in str(vars()['s'+str(i)].lev)):
                    ssan+=1
                if ('普通' in str(vars()['s'+str(i)].lev)):
                    spt+=1
    print(t_zon,'ok')
    return [gong,gshi,gyi,ger,gsan,gpt,si,sshi,syi,ser,ssan,spt]
コード例 #11
0
from openpyxl import load_workbook as lw
from openpyxl.drawing.image import Image

f = lw('C:\\Users\cnstyan9\Desktop\\test.xlsx')  #打开excel
w1 = f['Sheet1']  #指定worksheet
print(w1['c12'].value)  #输出worksheet中指定单元格的值
f.create_sheet('shttt')  #新建worksheet
w2 = f['shttt']
w2['a1'] = 'hhhahah'  #指定单元格赋值
img = Image('3.jpg')  #指定图片
w2.add_image(img, 'a2')  #指定位置插入图片
print(w2.cell(row=1, column=1).value)
w2.cell(row=1, column=2).value = 10
f.save('hha.xlsx')  #文件要保存
コード例 #12
0
ファイル: Main.py プロジェクト: ArnavMotwani/Excel-merger
from openpyxl import load_workbook as lw
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
from Functions import setup
from datetime import date

merged = Workbook()
page = merged.active
excel = 1
count = 0

Spreadsheets, Directory = setup()
for books in Spreadsheets:
    direc = Directory + books
    print(direc)
    workbook = lw(direc)
    sheet = workbook.active
    column = 1
    row = 1
    a = True
    b = True
    while a:
        cell = get_column_letter(column) + "1"
        data = sheet[cell].value
        if data:
            column += 1
        else:
            break
    while b:
        cell = "A" + str(row)
        data = sheet[cell].value
コード例 #13
0
    for laws in law_list:
        if len(laws) == 0:
            continue
        temp = laws.split(" ")
        temp = [x for x in temp if x != '']
        if temp[0] not in key:  # 不是属于贪污犯罪的法条
            continue
        candidate = law.get(temp[0])
        for tail in candidate:
            if match(tail, laws):  #法条匹配
                vec[LAW.index(tail)] = 1
    return vec


if __name__ == "__main__":
    wb = lw('纯贪污罪_一审_清洗.xlsx')
    ws = wb.worksheets[0]
    row = ws.max_row
    col = ws.max_column
    count = 0  # 计算数据为空的判决书个数
    count2 = 0  # 计算未能抽取法条的判决书个数
    # empty_result = []
    fire_write = openpyxl.Workbook()
    write = fire_write.create_sheet(index=0)
    o = 1
    # for i in range(1, col + 1):
    #     cell_value = ws.cell(row=1, column=i).value
    #     write.cell(row=1, column=i).value = cell_value
    num = 0
    for i in range(2, row + 1):
        # print(i)
コード例 #14
0
    driver.find_element_by_link_text('下一页').click()  #进入下一个页面
    return num  #返回下一个的编号值


def title(ws):  #excel表格的表头
    ws.cell(row=1, column=1).value = '编号'
    ws.cell(row=1, column=2).value = '名称'
    ws.cell(row=1, column=3).value = '地区'
    ws.cell(row=1, column=4).value = '属性'
    ws.cell(row=1, column=5).value = '性质'
    ws.cell(row=1, column=6).value = '地址'
    ws.cell(row=1, column=7).value = '电话'


if __name__ == '__main__':
    fm = lw('menu_yey.xlsx')  #打开幼儿园目录excel表格
    ws = fm['Sheet1']  #选中sheet1进行操作
    title(ws)  #设置表头

    site = 'http://xuexiao.51sxue.com/slist/?t=1&areaCodeS=31&page=1'  #目标url
    driver = webdriver.Chrome()  #chrome浏览器driver
    driver.get(site)  #打开url
    time.sleep(random.uniform(1, 2))  #随机等待1-2s
    driver.maximize_window()  #窗口最大化
    num = 1  #初始学校编号为1
    for i in range(1, 50):  #爬取页面从x到x-1
        try:
            num = get_school(driver, num)  #爬取主程序
            print('page ', i, ' finished!')
        except:
            print('someting went wrong at page ', i)
コード例 #15
0
ファイル: ödev.py プロジェクト: fatihgnc/web-scraping
# scale etme kısmı, sadece km'yi scale ediyoruz

# train km scale etme
min_max_scaler = preprocessing.MinMaxScaler()
train_km = dep_train[:, -1].reshape(-1, 1)
train_km = min_max_scaler.fit_transform(train_km)
dep_train[:, -1] = train_km.ravel()

# test km scale etme
test_km = dep_test[:, -1].reshape(-1, 1)
test_km = min_max_scaler.fit_transform(test_km)
dep_test[:, -1] = test_km.ravel()

# işlemleri tamamlanan veriler excele yazdırılıyor
wb = lw('odev_araba.xlsx')
sheets = wb.sheetnames
af_pre = wb[sheets[1]]
for ctr in range(500):
    for ctr2 in range(27):
        af_pre.cell(ctr + 2, ctr2 + 1).value = dep[ctr, ctr2]

list_test_km = test_km.tolist()
list_train_km = train_km.tolist()

sayac_km = 0
sayac_price = 0

for km in list_test_km:
    af_pre.cell(sayac_km + 2, 28).value = str(km)
    sayac_km += 1
コード例 #16
0
ファイル: xlsx_parser.py プロジェクト: misa9999/live-python
from openpyxl import load_workbook as lw

doc = lw("episodios.xlsx")
folhas = doc.get_sheet_names()
ep_folha = doc.get_sheet_by_name(folhas[0])

linhas = sum([[cedula for cedula in linha] for linha in ep_folha], [])
print(list(map(lambda x: x.value, linhas)))
コード例 #17
0
def write_to_xls(task, df, page_name, lr=0, mode='proj_status'):
    border = Border(left = Side(border_style = 'thin', color = 'FF000000'),
                    right = Side(border_style = 'thin', color = 'FF000000'),
                    top = Side(border_style = 'thin', color = 'FF000000'),
                    bottom = Side(border_style = 'thin', color = 'FF000000'))

    font = Font(bold=True)
    al = Alignment(horizontal="center", vertical="center")

    wb = lw(df)
    ws1 = wb[page_name]
    starts, ends = '', ''

    if mode == 'bugs':
        headers = [
            'Тема:',
            '№ задачи Jira',
            'Статус',
            'Приоритет',
            'Релиз'
        ]



    if mode == 'proj_status':
        headers = [
            'Тема:',
            '№ задачи Jira',
            'Приоритет',
            'Статус',
            'Исполнитель',
            'Комментарий'
        ]


    # assign the icon set to a rule



    for row in range(lr+1, lr+2):
        # Запишем заголовки в файл
        starts = f'{get_column_letter(1)}{lr+1}'
        if lr == 0:
            for col in range(0, len(headers)):
                _ = ws1.cell(column=col+1, row=row, value=headers[col])
                if col == 0:
                    starts = f'{get_column_letter(col+1)}{lr+1}'
                    ends = f'{get_column_letter(col+1)}{lr+1}'
                    temprang = f'{starts}:{ends}'
                    gtb.style_range(ws1, temprang, border=border, font=font, alignment=al)

                starts = f'{get_column_letter(col+1)}{lr+1}'
                ends = f'{get_column_letter(len(headers))}{row}'
                rang = f'{starts}:{ends}'
                #print(rang)
                gtb.style_range(ws1, rang, border=border, font=font)
                wb.save(filename = df)

        if type(task) is str:
            print(task)
            _ = ws1.cell(column=1, row=row+1, value=task)
            starts = f'{get_column_letter(1)}{row+1}'
            ends = f'{get_column_letter(len(headers))}{row+1}'
            rang = f'{starts}:{ends}'
            print(rang)
            gtb.style_range(ws1, rang, border=border, font=font, alignment=al)

            ws1.merge_cells(rang)
            wb.save(filename = df)
        else:
            if mode=='proj_status':
                for col in range(0, len(headers)-1):
                    if len(task) == 0:
                        _ = ws1.cell(column=col+1, row=row+1, value='')
                    else:
                        _ = ws1.cell(column=col+1, row=row+1, value=task[col])
                    ends = f'{get_column_letter(len(headers))}{row+1}'
                    rang = f'{starts}:{ends}'
                    #print(rang)
                    gtb.style_range(ws1, rang, border=border)
                    wb.save(filename = df)
            else:
                for col in range(0, len(headers)):
                    if len(task) == 0:
                        _ = ws1.cell(column=col+1, row=row+1, value='')
                    else:
                        _ = ws1.cell(column=col+1, row=row+1, value=task[col])
                    ends = f'{get_column_letter(len(headers))}{row+1}'
                    rang = f'{starts}:{ends}'
                    #print(rang)
                    gtb.style_range(ws1, rang, border=border)
                    wb.save(filename = df)
            #print(f'Финальная ячейка: {ends}')

        lr = row
    # Автоматическая ширина колонок.
    dims = {}
    for row in ws1.rows:
        for cell in row:
            if cell.value:
                dims[cell.column] = max((dims.get(cell.column, 0), len(str(cell.value))))
    for col, value in dims.items():
        ws1.column_dimensions[col].width = value
    wb.save(filename = df)
    print('Загадочное lr ' + str(lr))
    return lr
コード例 #18
0

from openpyxl import load_workbook as lw
from tqdm import tqdm
from time import sleep
from prettytable import PrettyTable

table = PrettyTable()
table.align = 'l'

workbook = lw(filename= 'data.xlsx')

sheet = workbook.active
sheet.title = 'haha'


print()
pbar = tqdm(total=100)
pbar.set_description("Working... ")
is_field = True


record = []
sums = []

for value in sheet.iter_rows(min_row=1,max_row=30,min_col=2,max_col=8,values_only=True):
    pass
    # record.append(value)
    if(is_field):
        table.field_names = value
        is_field = False