1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > xlsxwriter去掉网格线_用XlsxWriter设置Excel的表格边框

xlsxwriter去掉网格线_用XlsxWriter设置Excel的表格边框

时间:2024-06-23 22:01:30

相关推荐

xlsxwriter去掉网格线_用XlsxWriter设置Excel的表格边框

1. 背景

在用Pandas做数据处理时,为了呈现方便,往往会将结果数据导出为Excel文件。但美中不足的是Pandas并不支持Excel文件格式的设置。

而XlsxWriter可以与Pandas无缝结合,并具有非常精细的Excel格式控制功能。XlsxWriter对于Python初学者来说有一定的学习门槛,可以查询官网文档进行学习。

2. 问题

笔者在使用时,卡在了表格边框的设置上面。

在设置好format后,采用worksheet.set_column()或worksheet.set_row()对行或列进行边框设置时,要么出现:

“所选列全部设置了边框”

要么出现:

“所选行全部设置了边框”

的情况。

3. 解决方法

worksheet.conditional_format()

参数及使用方法详见官网说明文档。

4. 举个栗子

Excel表格中数据如下:

原始数据

我们将该excel表格导入DataFrame,如下:import pandas as pd

df = pd.read_excel('https://adamyide-1256435674.cos.ap-/tutorial01.xlsx', header = None, index = None)

df为:

df中的数据

接下来,开始设置表格边框:writer = pd.ExcelWriter('tutorial01_bolder.xlsx',engine='xlsxwriter')

df.to_excel(writer,sheet_name='sheet1', header = None, index = None)

workbook = writer.book

worksheet = writer.sheets['sheet1']

format_border = workbook.add_format({'border':1}) # 设置边框格式

worksheet.conditional_format('A1:XFD1048576',{'type':'no_blanks', 'format': format_border}) # 这里是核心,根据条件来设置格式

workbook.close()

format_border = workbook.add_format({'border':1})中的'border':格式:上面代码中的1是index值。IndexNameWeightStyle0None0

1Continuous1-----------

2Continuous2-----------

3Dash1- - - - - -

4Dot1. . . . . .

5Continuous3-----------

6Double3===========

7Continuous0-----------

8Dash2- - - - - -

9Dash Dot1- . - . - .

10Dash Dot2- . - . - .

11Dash Dot Dot1- . . - . .

12Dash Dot Dot2- . . - . .

13SlantDash Dot2/ - . / - .

worksheet.conditional_format('A1:XFD1048576',{'type':'no_blanks', 'format': format_border})可以查看官网说明,实际上是根据条件判断,进行格式化。

'A1:XFD1048576'是目前.xlsx格式文件支持的sheet大小,如果想提高运行效率,可以在已知表格大小的情况下,缩小这个区域。笔者没有尝试,应该会有效果吧。

这里注意参数中的'type',内容可以非常丰富,具体可以参考下官网Working with Conditional Formatting这一章。

最终出来的excel表格效果是这样:

输出效果

已经可以满足我的需求了。

注意:以上代码框中的代码可以直接在装有pandas的环境中运行,文件会存在当前运行目录中。

5 感谢:XlsxWriter的作者John McNamara,给我们带来这么好用的工具。他的GitHub上有更多的信息。

/p/869ddf214f5f

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。