Я создал скрипт с использованием xlrd для извлечения нескольких данных из нескольких ячеек в нескольких файлах excel и использовал xlwt для записи этих данных в новый файл excel. В новом файле excel я добавил две дополнительные строки с формулами, которые будут вычислять среднее значение и ttest. Теперь я пытаюсь добавить скрипт, который будет искать по строке ttest, и все значения, которые меньше 0,05, будут окрашены в красный цвет. В stackoverflow я нашел некоторую помощь, но я все еще получаю сообщение об ошибке. (Для окраски, я использую этот источник: https://pypi.python.org/pypi/xlwt)
Не могли бы вы помочь мне?
Спасибо!python xlwt - поиск определенного значения
from xlwt import *
style = xlwt.easyxf('font: colour red, bold on')
wb=xlwt.Workbook()
wbs=wb.add_sheet("sheet_to_write")
w=xlrd.open_workbook("file_to_read.xlsx")
ws=w.sheet_by_name("sheet_to_read")
c=ws.cell(2,6).value
wbs.write(46,1,c)
... #same as the last two lines, extracting different cells from the sheet_to_red and writing them in the sheet_to_write
wbs.write(61,1,Formula("TTEST($B3:$B18, $B19:$B57, 2, 2)"))
Старый код:
for p in range(61):
p.append(str(sheet.cell(row,col).value))
if p.value < 0.05:
cell.color =='22'
код 2:
for row in range(61):
for col in range(wbs.nrows):
cell=ws.cell(row,col)
try:
if float(cell.value) < 0.05:
cell.color =='22'
except ValueError: pass
AttributeError: 'Cell' object has no attribute 'color'
код 3:
for row in range(61):
for col in range(wbs.nrows):
search=wbs.cell(row,col)
try:
if float(search.value) < 0.05:
wbs.write(row, col, search.value, style)
except ValueError: pass
ERROR:
AttributeError: 'Worksheet' object has no attribute 'cell',
Мой Вывод: этот метод не будет работать, потому что xlwt имеет нет ячейки атрибута или nrows, эти атрибуты специфичны для x LRD. Следовательно, единственным способом, который будет работать, является создание другого файла, который будет использовать xlrd, поиск определенного значения и запись его в новый файл. Спасибо Pyrce и tmrlvi за вашу помощь!
Можете ли вы добавить полную трассировку стека (полный выход исключения)? Это поможет найти проблему – tmrlvi
Nevermind, я нашел ошибку - вы вызываете '' 'p.append''', а' '' p''' - это номер. Что вы пытались достичь в этой части кода? – tmrlvi
Большое спасибо за такой быстрый ответ! Как я понял, я хотел использовать «.append» для поиска по всей ячейке в строке Nr. "61". Я адаптирую следующий скрипт с помощью «try». Благодаря ! – qode