我使用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'''而''''''''''''是一個數字。你在那部分代碼中想要達到什麼目的? – tmrlvi
非常感謝您這麼快速的回答!據我瞭解,我想用「.append」來搜索Nr行中的所有單元格。 「61」。我將用「嘗試」來調整下一個腳本。謝謝 ! – qode