我们知道可以通过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' | set_font_name() |
Font size | 'font_size' | set_font_size() | |
Font color | 'font_color' | set_font_color() | |
Bold | 'bold' | set_bold() | |
Italic | 'italic' | set_italic() | |
Underline | 'underline' | set_underline() | |
Strikeout | 'font_strikeout' | set_font_strikeout() | |
Super/Subscript | 'font_script' | set_font_script() | |
Number | Numeric format | 'num_format' | set_num_format() |
Protection | Lock cells | 'locked' | set_locked() |
Hide formulas | 'hidden' | set_hidden() | |
Alignment | Horizontal align | 'align' | set_align() |
Vertical align | 'valign' | set_align() | |
Rotation | 'rotation' | set_rotation() | |
Text wrap | 'text_wrap' | set_text_wrap() | |
Reading order | 'reading_order' | set_reading_order() | |
Justify last | 'text_justlast' | set_text_justlast() | |
Center across | 'center_across' | set_center_across() | |
Indentation | 'indent' | set_indent() | |
Shrink to fit | 'shrink' | set_shrink() | |
Pattern | Cell pattern | 'pattern' | set_pattern() |
Background color | 'bg_color' | set_bg_color() | |
Foreground color | 'fg_color' | set_fg_color() | |
Border | Cell border | 'border' | set_border() |
Bottom border | 'bottom' | set_bottom() | |
Top border | 'top' | set_top() | |
Left border | 'left' | set_left() | |
Right border | 'right' | set_right() | |
Border color | 'border_color' | set_border_color() | |
Bottom color | 'bottom_color' | set_bottom_color() | |
Top color | 'top_color' | set_top_color() | |
Left color | 'left_color' | set_left_color() | |
Right color | 'right_color' | set_right_color() |
data_validation
有的时候我们还需要在excel中的cell里添加选项列表,具体实现如下:
worksheet.data_validation('C1', {"validate": "list", "source": ["新增", "待优化", "已优化", "已验证", "不优化"]})
效果如下所示:
想了解更多关于xlswriter 操作Excel的高级应用,可以参考文章:
https://blog.csdn.net/liwenxiang629/article/details/138673004
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!