如何在 openpyxl 中进行列对齐?
How to do column alignment in openpyxl?
我试图在 openpyxl 中对齐列但没有成功:
wb = Workbook()
ws = wb.active
.....
ws.column_dimensions["A"].alignment = Alignment(horizontal='left')
ws.column_dimensions["C"].alignment = Alignment(horizontal='center')
同样适用于:
ws["A"].alignment = Alignment(horizontal='left')
ws["C"].alignment = Alignment(horizontal='center')
这对我不起作用。
否则,遍历单元格并进行对齐可以正常工作!
你应该得到失败的 Traceback!
如果您 post 有问题,请告诉我们!
ws["A"].alignment = Alignment(horizontal='left')
AttributeError: 'tuple' object has no attribute 'alignment'
范围甚至整列的样式未实现。
你必须自己做。例如:
for row in rows:
cell_A = row[:1][0]
cell_A.alignment = Alignment(horizontal='left')
测试 Python:3.4.2 - openpyxl:2.4.1 - LibreOffice: 4.3.3.2
from openpyxl import load_workbook
from openpyxl.styles import Alignment
xlsx_file = 'file.xlsx'
# openning:
wb = load_workbook(filename = xlsx_file)
# center align column H in the default sheet:
ws = wb.active
for row in ws[2:ws.max_row]: # skip the header
cell = row[7] # column H
cell.alignment = Alignment(horizontal='center')
# saving:
wb.save(xlsx_file)
我试图在 openpyxl 中对齐列但没有成功:
wb = Workbook()
ws = wb.active
.....
ws.column_dimensions["A"].alignment = Alignment(horizontal='left')
ws.column_dimensions["C"].alignment = Alignment(horizontal='center')
同样适用于:
ws["A"].alignment = Alignment(horizontal='left')
ws["C"].alignment = Alignment(horizontal='center')
这对我不起作用。
否则,遍历单元格并进行对齐可以正常工作!
你应该得到失败的 Traceback!
如果您 post 有问题,请告诉我们!
ws["A"].alignment = Alignment(horizontal='left')
AttributeError: 'tuple' object has no attribute 'alignment'
范围甚至整列的样式未实现。 你必须自己做。例如:
for row in rows:
cell_A = row[:1][0]
cell_A.alignment = Alignment(horizontal='left')
测试 Python:3.4.2 - openpyxl:2.4.1 - LibreOffice: 4.3.3.2
from openpyxl import load_workbook
from openpyxl.styles import Alignment
xlsx_file = 'file.xlsx'
# openning:
wb = load_workbook(filename = xlsx_file)
# center align column H in the default sheet:
ws = wb.active
for row in ws[2:ws.max_row]: # skip the header
cell = row[7] # column H
cell.alignment = Alignment(horizontal='center')
# saving:
wb.save(xlsx_file)