我正在尝试使用Openpyxl将边框应用于单元格,但我在最基本的“将任何类型的边框应用于任何位置的任何单元格”任务上都失败了。我尝试从Openpyxl文档(http://pythonhosted.org/openpyxl/styles.html#introduction)默认样式进行复制并修改,但这给了我
“TypeError: init ()得到了一个意外的关键字参数'superscript'”
我尝试直接从另一个例子中复制(Apply borders to all cells in a range with openpyxl),但这给了我
AttributeError:类型对象'Border'没有属性'BORDER_THIN'
(即使在我修正拼写错误和导入错误不足之后)。
有没有人知道如何使用Python 3.3和OpenPyxl 2.0.4应用边框?我正在寻找的是一段代码,如果我将其复制粘贴到空白脚本中,将在工作簿中的任何单元格周围放置边框。
答案 0 :(得分:23)
使用openpyxl 2.2.5版本,此代码段适用于我:
from openpyxl.styles.borders import Border, Side
from openpyxl import Workbook
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
wb = Workbook()
ws = wb.get_active_sheet()
# property cell.border should be used instead of cell.style.border
ws.cell(row=3, column=2).border = thin_border
wb.save('border_test.xlsx')
答案 1 :(得分:6)
使用openpyxl版本2.0.4,此代码段适用于我:
from openpyxl.styles.borders import Border, Side
from openpyxl.styles import Style
from openpyxl import Workbook
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
my_style = Style(border=thin_border)
wb = Workbook()
ws = wb.get_active_sheet()
ws.cell(row=3, column=2).style = my_style
wb.save('border_test.xlsx')
答案 2 :(得分:3)
此答案适用于版本 2.4.8 。与前两个答案的区别在于Side的属性是 border_style,而不是style
.then
答案 3 :(得分:0)
如果我只想把底线放在一个单元格中,那么只提到一个单元格的底部,就像下面的代码,
from openpyxl.styles.borders import Border, Side
wb = Workbook()
ws = wb.active
thin_border = Border(bottom=Side(style='thin'))
ws.cell(row=3, column=2).border = thin_border
wb.save("test.xlsx")