簡體   English   中英

openpyxl:為一系列Excel單元格分配值或應用格式而不進行迭代

[英]openpyxl: assign value or apply format to a range of Excel cells without iteration

我想應用特定的格式或為一系列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

這不太准確。 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")

在Excel中,樣式必須應用於單個單元格,因為這是文件格式的工作方式。 由於它的工作方式,openpyxl不提供所需的功能,但可以使用xlsxwriter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM