我们知道可以通过pandas 对excel 中的数据进行处理分析,但是pandas本身对格式化数据方面提供了很少的支持,如果我们想对pandas进行数据分析后的数据进行格式化相关操作,我们可以使用xlsxwriter,本文就对xlsxwriter的常见excel格式化方法进行介绍!这里需要强调一下xlsxwriter只支持excel的新建写入操作!(会对原有的同名excel文件进行覆盖)
xlsxwriter常用API
安装方法
pip install xlsxwriter
最基础的写入数据操作代码如下:
workbook = xlsxwriter.Workbook('test1.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write_row(0,0, ['测试excel的格式化'])
workbook.close()
其中write_row的api参数介绍如下:
def write_row(self, row, col, data, cell_format=None):
"""
Write a row of data starting from (row, col).
Args:
row: The cell row (zero indexed).
col: The cell column (zero indexed).
data: A list of tokens to be written with write().
format: An optional cell Format object.
Returns:
0: Success.
other: Return value of write() method.
row 和col就是行列信息,
这里需要注意参数data是一个list,向不同列写入数据,就是在list中添加不同的数据。
worksheet.write_row(0,0, ['测试excel的格式化',1.99])
即分别在单元格A1 和B1写入数据,接下来我们就来看看write_row 中的另一个参数format,这是我们重点讨论的内容!常见的设置如下:
workbook.add_format({'bold': True, 'align': 'center', 'border': True,'bg_color': '00CC66','font_color':'red', 'num_format':'0.00'})
看属性名称就会猜到其功能
'bold': True 设置字符粗体、
'align': 'center' 居中显示文字
'border': True, 单元格设置边框
'bg_color': '00CC66' 单元格背景颜色为绿色
'font_color':'red',单元格字符颜色为红色
'num_format':'0.00' 单元格数字进行格式化
下面我们直接上代码
import xlsxwriter
workbook = xlsxwriter.Workbook('test1.xlsx')
worksheet = workbook.add_worksheet()
worksheet.set_column('A:B', 30)
cells_format = workbook.add_format({'bold': True, 'align': 'center', 'border': True,'bg_color': '00CC66','font_color':'red','num_format':'0.00'})
data_format=workbook.add_format({'num_format':'0.00'})
worksheet.write_row(0,0, ['测试excel的格式化',1.99],cells_format)
workbook.close()
excel 展示内容如下,可以看到我们设置的属性内容都生效了
其他属性还包括:
Category |
Description |
Property |
Method Name |
Font |
Font type |
'font_name' |
|
Font size |
'font_size' |
||
Font color |
'font_color' |
||
Bold |
'bold' |
||
Italic |
'italic' |
||
Underline |
'underline' |
||
Strikeout |
'font_strikeout' |
||
Super/Subscript |
'font_script' |
||
Number |
Numeric format |
'num_format' |
|
Protection |
Lock cells |
'locked' |
|
Hide formulas |
'hidden' |
||
Alignment |
Horizontal align |
'align' |
|
Vertical align |
'valign' |
||
Rotation |
'rotation' |
||
Text wrap |
'text_wrap' |
||
Reading order |
'reading_order' |
||
Justify last |
'text_justlast' |
||
Center across |
'center_across' |
||
Indentation |
'indent' |
||
Shrink to fit |
'shrink' |
||
Pattern |
Cell pattern |
'pattern' |
|
Background color |
'bg_color' |
||
Foreground color |
'fg_color' |
||
Border |
Cell border |
'border' |
|
Bottom border |
'bottom' |
||
Top border |
'top' |
||
Left border |
'left' |
||
Right border |
'right' |
||
Border color |
'border_color' |
||
Bottom color |
'bottom_color' |
||
Top color |
'top_color' |
||
Left color |
'left_color' |
||
Right color |
'right_color' |
data_validation
有的时候我们还需要在excel中的cell里添加选项列表,具体实现如下:
worksheet.data_validation('C1', {"validate": "list", "source": ["新增", "待优化", "已优化", "已验证", "不优化"]})
效果如下所示:
想了解更多关于xlswriter 操作Excel的高级应用,可以参考文章:
https://blog.csdn.net/liwenxiang629/article/details/138673004
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!