详解xlsxwriter 操作Excel的常用API

107 篇文章 8 订阅
52 篇文章 4 订阅
我们知道可以通过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_rowapi参数介绍如下:

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

我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试开发Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值