使用Python对齐Excel Worksheet中的一些列

时间:2018-04-04 23:11:56

标签: python pandas xlsxwriter

我无法使用xlsxWriter对齐Excel工作表的列。为了进一步说明,这里是数据框

   Name        Employee ID      Year
John Miller    2014108          2014
Sarah Jones    2011548          2011
Jake Kenedy    2010546          2010

我正在尝试对齐“名称”列,以使值位于左侧而不是居中

我试过这个

workbook = writer.book
cell_format = workbook.add_format()
cell_format.set_align('left')

然而,什么也没发生。 任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:2)

我遇到了与索引相关的相同问题。我的数据框将字符串类型的第一列作为索引。似乎无法使用 xlsxwriter 重新格式化索引。 为了解决这个问题,我按以下顺序尝试了以下操作:

df.reset_index(inplace=True)
df.to_excel(writer, sheet_name='Sheet1',index=False)

然后格式化功能起作用了。

答案 1 :(得分:1)

您需要实际应用格式名称列。

df = pd.DataFrame ({'Name': ['J Miller', 'S Jones', 'J Kenedy'],
                    'Employee ID': [1,2,3],
                    'Year': [2014, 2011, 2010]})

writer = pd.ExcelWriter('left_aligned_file.xlsx', engine='xlsxwriter')

# Add your dataframe to the writer
df.to_excel(writer, sheet_name='Sheet1')

workbook = writer.book
worksheet = writer.sheets['Sheet1']

new_format = workbook.add_format()
new_format.set_align('left')

# Apply new format to name column, which will be column C.
worksheet.set_column('C:C', 10, new_format)
writer.save()

值得一看:http://xlsxwriter.readthedocs.io/example_pandas_column_formats.html