如何在 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)