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()
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)
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
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)
def test3(): # Проверяет работу ячейки-маркера типа файла filenames = ['Пример_11.xlsx', 'Пример_аппел.xlsx', 'Пример.xlsx'] cell = 'B10' for name in filenames: book = lw(name) page = book.active print(page[cell].value)
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
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
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)
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)
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]
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') #文件要保存
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
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)
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)
# 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
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)))
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
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