我想应用特定格式或为一系列Excel单元格指定值,而不迭代每个单元格。我目前正在使用这个脚本:
from openpyxl import Workbook
from openpyxl.styles import Font
wb = Workbook()
ws = wb.active
## With iterations
# Apply style
for i, rowOfCellObjects in enumerate(ws['A1':'C4']):
for n, cellObj in enumerate(rowOfCellObjects):
cellObj.fill = Font(name='Times New Roman')
# Assign singular value to all cells
for i, rowOfCellObjects in enumerate(ws['A1':'C4']):
for n, cellObj in enumerate(rowOfCellObjects):
cellObj.value = 3
wb.save("test.xlsx")
但我正在寻找一个较短的符号,如下:
from openpyxl import Workbook
from openpyxl.styles import Font
wb = Workbook()
ws = wb.active
## Without iterations
# Apply style
ws['A1':'C4'].fill = Font(name='Times New Roman')
# Assign singular value to all cells
ws['A1':'C4'].value = 3
wb.save("test.xlsx")
openpyxl
或其他模块是否提供类似的内容?
ps:我正在使用Python 3.5
答案 0 :(得分:2)
这不是很准确。 OpenPyxel允许将样式应用于列和行:
根据:https://openpyxl.readthedocs.io/en/stable/styles.html
样式也可以应用于列和行,但是请注意,这适用于 仅适用于关闭文件后在Excel中创建的单元格。如果你想 要将样式应用于整个行和列,则必须应用 每个单元格的样式。这是文件格式的限制:
col = ws.column_dimensions['A']
col.font = Font(bold=True)
row = ws.row_dimensions[1]
row.font = Font(underline="single")
答案 1 :(得分:1)
在Excel样式中,必须才能应用于单个单元格,因为这是文件格式的工作方式。由于它的工作方式,openpyxl不提供所需的功能,但可以使用xlsxwriter。