2017-06-23 44 views
0

我正在使用Python創建包含openpyxl包的xlsx文件。我創建了簡單的表格,我想用垂直條分隔各列。 問題:如何通過openpyxl創建豎條?是否有可能在openpyxl的表中創建一個垂直條?

+0

您可以使用樣式'border',閱讀[OpenPyXL使用樣式](https://openpyxl.readthedocs.io/en/default/styles.html) – stovfl

+0

@stovfl,我找到了一個您指向的解決方案。我認爲這將是一個答案。 – BogdanSikach

回答

1

問題:如何通過openpyxl創建垂直條?

您可以使用款式borderfill

OpenPyXL Working with styles
樣式用於更改數據的外觀,同時顯示在屏幕上。它們也用於確定數字的格式。

例如:

from openpyxl import Workbook 
wb = Workbook() 
ws = wb.worksheets[0] 

data = [['A1', '', 'C1', '', 'E1'], ['A2', '', 'C2', '', 'E2'], ['A3', '', 'C3', '', 'E3'], ['A4', '', 'C4', '', 'E4']] 
for row, rData in enumerate(data, 1): 
    ws.append(rData) 

from openpyxl.styles import Side, Border, PatternFill, Color 
thin = Side(border_style="thin", color="000000") 
thin_white = Side(border_style="thin", color="FFFFFF") 
border = Border(left=thin) 
fill = PatternFill("solid", fgColor="666666") 

from openpyxl.utils import range_boundaries 
ws.column_dimensions['B'].width = 1 
ws.column_dimensions['D'].width = 0.5 
min_col, min_row, max_col, max_row = range_boundaries('B1:D4') 
B = 0; D = 2 
for row_cells in ws.iter_rows(min_col=min_col, min_row=min_row, 
            max_col=max_col, max_row=max_row): 

    row_cells[B].border = border 
    row_cells[D].fill = fill 
    row_cells[D].border = Border(left=thin_white, right=thin_white) 

wb.save('../test/test.xlsx') 

輸出Style Border and Fill

測試與Python 3.4.2 - openpyxl:2.4.1 - LibreOffice的:4.3.3.2

相關問題