英文:
Openpyxl: Formatting an entire row or column up to a designated cell - is it doable?
问题
在openpyxl中,是否有一种方法可以格式化整个行或列,并使其在特定单元格处停止,而不必遍历每个单独的单元格。
例如,我是否可以执行类似于调用ws.row_dimensions[0].font = some_font_object的操作,以便它格式化整个行[0],但在列F处停止。
我有一个用于同时格式化整个行和列的函数,通过遍历每个单独的单元格来实现。只是想知道是否可以对第一种选项设置一个限制。
英文:
In openpyxl, is there a way to format an entire row or column and have it stop at a certain cell without iterating over each individual cell.
I.e. can I do something similar to calling ws.row_dimensions[0].font = some_font_object, so that it formats the font of the entire row[0], but have it stop at say column F.
I have a function for formatting both entire rows and columns at once and by iterating over each individual cell. Was just wondering if I can set a limit to the first option.
答案1
得分: 1
以下是翻译好的部分:
"Is there a way to format an entire row or column and have it stop at a certain cell without iterating over each individual cell?"
有没有一种方法可以格式化整行或整列,并使其在特定单元格停止,而无需遍历每个单元格?
"I'm not sure if this would be possible in openpyxl
(read this answer from @Charlie Clark)."
我不确定在openpyxl
中是否可能实现这一点(阅读@Charlie Clark的此答案)。
"AFAIK, you need to loop over the cells individually, this way :"
据我所知,你需要逐个遍历单元格,像这样:
"from openpyxl import Workbook
from openpyxl.styles import NamedStyle, Font
wb = Workbook()
ws = wb.active
randomStyle = NamedStyle(
name="randomStyle",
font=Font(name="Arial", size=40, bold=True, color="33c481"),
# (if needed) add here more styles
)
ws.append(range(10)) # here we write values in A0:J0
for cell in ws["A0:F0"][0]: # here, we format a specific range
cell.style = randomStyle
#another variant
#for row in ws.iter_rows(max_row=1, max_col=6):
for cell in row:
cell.style = randomStyle
wb.save("file.xlsx")"
输出:
英文:
> Is there a way to format an entire row or column and have it stop at a
> certain cell without iterating over each individual cell ?
I'm not sure if this would be possible in openpyxl
(read this answer from @Charlie Clark).
AFAIK, you need to loop over the cells individually, this way :
from openpyxl import Workbook
from openpyxl.styles import NamedStyle, Font
wb = Workbook()
ws = wb.active
randomStyle = NamedStyle(
name="randomStyle",
font=Font(name="Arial", size=40, bold=True, color="33c481"),
# (if needed) add here more styles
)
ws.append(range(10)) # here we write values in A0:J0
for cell in ws["A0:F0"][0]: # here, we format a specific range
cell.style = randomStyle
#another variant
#for row in ws.iter_rows(max_row=1, max_col=6):
# for cell in row:
# cell.style = randomStyle
wb.save("file.xlsx")
Output :
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论