6
我使用xlrd和xlwt來檢查某些單元格並檢查它們是否符合某些條件。如果他們符合我繼續的標準,如果不符合,我想爲文本RED着色。從單元格到單元格的格式變化,有些是背景色,有些是粗體的,有些是不同的大小,所有這些差異都需要保留。Python xlwt:保留所有樣式,但只有一個
有沒有簡單的方法來做到這一點?
我可以複製我知道很容易使用easy_xf的一個細胞的電流格式,
form = xlwt.easyxf(
'font: name Gotham Narrow Book, height 140, color red;'
'borders: left thin, right thin, top thin, bottom thin;'
'pattern: pattern solid, pattern_fore_colour white, pattern_back_colour white'
)
但本課程的過程中遇到問題,因爲不是每個細胞都有相同的格式(如我上面所解釋的,一些有背景顏色或沒有邊界或不同的字體樣式)。我看着從另一個StackOverflow的問題,這段代碼保存風格:
def _getOutCell(outSheet, colIndex, rowIndex):
""" HACK: Extract the internal xlwt cell representation. """
row = outSheet._Worksheet__rows.get(rowIndex)
if not row: return None
cell = row._Row__cells.get(colIndex)
return cell
def setOutCell(outSheet, col, row, value):
""" Change cell value without changing formatting. """
# HACK to retain cell style.
previousCell = _getOutCell(outSheet, col, row)
# END HACK, PART I
outSheet.write(row, col, value)
# HACK, PART II
if previousCell:
newCell = _getOutCell(outSheet, col, row)
if newCell:
newCell.xf_idx = previousCell.xf_idx
# END HACK
outSheet = outBook.get_sheet(0)
setOutCell(outSheet, 5, 5, 'Test')
outBook.save('output.xls')
看起來好像風格在Cell.xf_idx舉行,但在這個值左看右看之後,我發現它是一個整數,讓我完全困惑於如何從中提取樣式的某些屬性,以便我可以單獨更改字體顏色。
正如我之前所說,有沒有簡單的方法來完成這一點?
我會接受你的回答並獎勵你的賞金,但我很失望。當然,我已經保存了格式(如何讓所有這些單元格都具有不同的格式?)。所有你真正給我的是這個鏈接。你已經給了我什麼我需要解決這個問題,是的,但你沒有解釋任何關於'xf_idx'或一般的風格(這正是我真正希望的這個問題)。無論如何,謝謝你的幫助。 – scohe001