使用openpyxl创建并输出excel文件
使用openpyxl来输出excel文件的优势是可以像输出普通文本那样一行一行的进行添加
具体的使用方法如下
from openpyxl import Workbook
book = Workbook()
sheet1 = book.active
sheet1['A1'] = 'This is A1'
sheet1.title = 'sheet1'
sheet2 = book.create_sheet(title='sheet2')
content = [[ i for i in range(10)] for i in range(10)]
for i in content:
sheet2.append(i)
book.save('openpyxl.xlsx')
最终的输出结果截图如下:
设置单元格的style
想要设置单元格的一些格式,比如,颜色,字体,粗细等可以通过openpyxl.styles来完成,一些设置如下
>>> from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font
>>> font = Font(name='Calibri',
... size=11,
... bold=False,
... italic=False,
... vertAlign=None,
... underline='none',
... strike=False,
... color='FF000000')
>>> fill = PatternFill(fill_type=None,
... start_color='FFFFFFFF',
... end_color='FF000000')
>>> border = Border(left=Side(border_style=None,
... color='FF000000'),
... right=Side(border_style=None,
... color='FF000000'),
... top=Side(border_style=None,
... color='FF000000'),
... bottom=Side(border_style=None,
... color='FF000000'),
... diagonal=Side(border_style=None,
... color='FF000000'),
... diagonal_direction=0,
... outline=Side(border_style=None,
... color='FF000000'),
... vertical=Side(border_style=None,
... color='FF000000'),
... horizontal=Side(border_style=None,
... color='FF000000')
... )
>>> alignment=Alignment(horizontal='general',
... vertical='bottom',
... text_rotation=0,
... wrap_text=False,
... shrink_to_fit=False,
... indent=0)
>>> number_format = 'General'
>>> protection = Protection(locked=True,
... hidden=False)
这里我们试图将第一列的内容全部标记为红色,我们可以通过如下的代码实现:
for i in range(len(content)):
astr = 'A{}'.format(i+1)
sheet2[astr].font = Font(color=colors.RED)
需要注意的是,这一段代码要写在写入内容的后面,也就是在写入完成之后,保存excel表格之前来实现。更多的用法请见官方文档 https://openpyxl.readthedocs.io/en/stable/styles.html