我有一個腳本需要一個pandas數據框並將其分成幾百個塊,並將每個塊保存爲一個單獨的excel文件。每個塊將具有相同的列數,但行數不同。我已經想出瞭如何使用openpyxl將所有其他必要的格式應用於這些文件,但我還沒有確定應用邊界的最快方式。此外,我認爲我只是沒有正確應用邊框,因爲下面的代碼(我懷疑不應該需要逐個遍歷每個單元格)不應用任何邊框。使用openpyxl將範圍應用到範圍內的所有單元格
from openpyxl.style import Border
wb = load_workbook(filename = _fname)
ws = wb.worksheets[0]
for _row in ws.range('A1:L'+str(ws.get_highest_row())):
for _cell in _row:
_cell.style.borders.left.border_style = Border.BORDER_THIN
_cell.style.borders.right.border_style = Border.BORDER_THIN
_cell.style.borders.top.border_style = Border.BORDER_THIN
_cell.style.borders.bottom.border_style = Border.BORDER_THIN
wb.save(_fname)
所以這個代碼工作,但它並不適用於我預計(在Excel中默認邊框)的邊界,它需要更多的步驟比我更喜歡。我的期望是,我應該可以這樣做:
from openpyxl.style import Border
wb = load_workbook(filename = _fname)
ws = wb.worksheets[0]
_range = ws.some_range_func('A1:L'+str(ws.get_highest_row())):
_range.style.borders.all_borders = Borders.BORDER_THIN
此功能是否存在?如果不是,有人可以請至少解釋如何應用默認的邊框樣式,而不是這個稍厚的邊框? Border.BORDER_THICK,Border.BORDER_MEDIUM,Border.BORDER_THIN或Border.BORDER_HAIR都不正確。
謝謝!
等等,所以在你的改變中,我應該能夠在我對df.to_excel()的調用中應用XLSX樣式?你可以給我演示一下這個過程是如何工作的,並且解釋我需要做什麼來更新我的熊貓版本以包含你的功能? –
只需克隆主機並從源代碼安裝即可。 df.to_excel將爲標題,粗體名稱,合併多重索引添加邊框...這是一張圖片http://cl.ly/image/2r102L0E1l23。它會自動啓動。你可以看看源代碼來解決你的問題 – locojay
我想應用我自己的風格,所以這不是我所需要的。聽起來最好的方式就是我已經在做的事情。謝謝! –