总第138篇/张俊红

在DataFrame样式表设置的第一节DataFrame表样式设置(一)中我们讲了字体相关的一些设置,这一节我们讲一下,对齐方式、数字显示、条件格式相关的一些设置。

1.对齐方式

对齐方式主要有两种,一种是水平方向对齐,一种是垂直方向对齐。

1.1水平方向对齐

关于水平方向对齐情况使用的是horizontal_alignment参数,主要有如下几个参数值可选:

general = 'general' #一般
left = 'left' #左对齐
center = 'center' #居中对齐
right = 'right' #右对齐
fill = 'fill' #填满单元格对齐
justify = 'justify' #两端对齐
center_continuous = 'centerContinuous'
distributed = 'distributed' #分散对齐#注意区分两端对齐和分散对齐

我们把col_1列设置成左对齐,col_2列设置成右对齐,col_3列设置成居中对齐,实现代码如下:

sf.apply_column_style(cols_to_style=["col_1"], styler_obj=Styler(horizontal_alignment="left"),style_header=True)
sf.apply_column_style(cols_to_style=["col_2"], styler_obj=Styler(horizontal_alignment="right"),style_header=True)
sf.apply_column_style(cols_to_style=["col_3"], styler_obj=Styler(horizontal_alignment="center"),style_header=True)
ew = StyleFrame.ExcelWriter(r'my_excel.xlsx')
sf.to_excel(ew)
ew.save()

最后效果如下:

1.2垂直方向对齐

垂直方向对齐和水平方向对齐的原理一样,关于垂直对齐使用的是vertical_alignment参数,主要有如下几个参数值可选:

top = 'top' #靠上对齐
center = 'center' #靠中对齐
bottom = 'bottom' #靠下对齐
justify = 'justify' #两端对齐
distributed = 'distributed' #分散对齐

2.数字显示

我们知道一个数字有不同的表现形式,可以是小数点也可以是百分数,可以设置保留两位小数点还可以设置保留三位小数点。我们要想设置数字的这些显示形式,需要用到number_format参数,主要有如下几个参数值可选:

general = 'General' #对应Excel中的常规
general_integer = '0' #不保留小数点
general_float = '0.00' #保留两位小数点
percent = '0.0%' #百分数
thousands_comma_sep = '#,##0' #千位分隔样式
date = 'DD/MM/YY' #年月日
time_24_hours = 'HH:MM' #小时分钟
time_24_hours_with_seconds = 'HH:MM:SS' #小时分钟秒
time_12_hours = 'h:MM AM/PM' #12小时分钟 上下午区分
time_12_hours_with_seconds = 'h:MM:SS AM/PM' #12小时分钟秒 上下午区分
date_time = 'DD/MM/YY HH:MM' #年月日时分
date_time_with_seconds = 'DD/MM/YY HH:MM:SS' #年月日时分秒

我们把col_1列设置成常规格式,col_2列设置成保留3位小数点,col_3列设置成百分数格式,实现代码如下:

sf.apply_column_style(cols_to_style=["col_1"], styler_obj=Styler(number_format="0"),style_header=True)
sf.apply_column_style(cols_to_style=["col_2"], styler_obj=Styler(number_format="0.000"),style_header=True)
sf.apply_column_style(cols_to_style=["col_3"], styler_obj=Styler(number_format="0.0%"),style_header=True)
ew = StyleFrame.ExcelWriter(r'my_excel.xlsx')
sf.to_excel(ew)
ew.save()

最后效果如下:

3.条件格式

条件格式主要将满足条件的某些值重点突出显示出来,条件格式主要用在色阶显示中,可选的条件如下:

num = 'num' #根据具体数值
percent = 'percent' #根据百分数
max = 'max' #根据最大值
min = 'min' #根据最小值
formula = 'formula' #根据公式
percentile = 'percentile' #根据分位数

色阶调整需要用到add_color_scale_conditional_formatting方法。

4.行宽列高设置

4.1设置列宽

设置列宽的时候,我们可以将整个表中所有列设置成一样的宽度,也可以不同列的列宽是不一样的。设置列宽不是通过设置Styler来设置的,而是在sf表上直接调用set_column_widthset_column_width_dict方法即可。

我们把整个表列宽都设置成10,实现代码如下:

sf.set_column_width(columns = ["col_1","col_2","col_3"],width=10)
ew = StyleFrame.ExcelWriter(r'my_excel.xlsx')
sf.to_excel(ew)
ew.save()

最后效果如下:

我们把col_1列列宽设置成10,col_2列列宽设置成20,col_3列列宽设置成30,实现代码如下:

sf.set_column_width_dict(col_width_dict = {"col_1":10,"col_2":20,"col_3":30})
ew = StyleFrame.ExcelWriter(r'my_excel.xlsx')
sf.to_excel(ew)
ew.save()

最后效果如下:

4.2设置行高

设置列宽与行高的原理是一样的,使用的方法是set_row_heightset_row_height_dict

5.读取本地表

读取本地表就是我们可将本地的Excel文件读取进来,然后对其设置样式,也可以将本地Excel文件的样式读取进来。读取文件用到的方法是read_excel

read_excel有如下参数:

参数 说明
path 待读取文件路径
sheet_name 要读取文件的sheet名
read_style 是否读取文件表中已有的样式,默认是False
use_openpyxl_styles 是使用 Openpyxl的风格,还是使用Styler风格,默认False,即使用Styler风格
read_comments 是否读取批注,默认Fasle

需要注意的一点是,读取进来的本地表不可以进行预览,即你在Python里面是看不到长什么样子的。读取文件实例如下:

from StyleFrame import StyleFrame
sf=StyleFrame.read_excel(r"C:\Users\my_excel.xlsx")
sf-------
<StyleFrame.style_frame.StyleFrame at 0x287b4eca90>

6.保存到本地

将文件格式设置好了,我们就可以将文件导出到本地进行保存,保存文件用到的方法是to_excel

to_excel有如下参数:

参数 说明
excel_writer 输出文件路径
sheet_name 输出文件sheet名
allow_protection 是否受保护,默认是False
right_to_left 使sheet从右到左排
columns_to_hide 要隐藏的列名,以列表传入
row_to_add_filters 要过滤哪些行,传入行索引即可
columns_and_rows_to_freeze 要冻结的窗口,如果输入"C3",则会把A、B列和1、2行冻结
best_fit 传入列名,会根据列宽自动调节字体大小

DataFrame表样式设置(二)相关推荐

  1. DataFrame表样式设置(一)

    总第136篇/张俊红 1.前言 我们知道Excel功能很强大,Python与Excel交互也有很多现成的模块可以用,主要有xlrd.xlwt.openpyxl.xlsxwriter这四种可以用,这些模 ...

  2. POI封装工具easyexcel导出EXCEL表样式设置

    POI封装工具easyexcel导出EXCEL表样式设置 java中对Office操作比较好的工具是POI,但POI在导出数据量较大的情况下很容易因内存占用过大,而出错,阿里巴巴推出的easyexce ...

  3. 数据透视表可以两列汇总列吗_列出所有数据透视表样式宏

    数据透视表可以两列汇总列吗 When you create a pivot table, a default PivotTable Style is automatically applied. Yo ...

  4. 点击展开 表格_Excel里面如何设置默认的表格和透视表样式

    今天来介绍一下关于表格和透视表默认样式的小细节.在新建了一个表格或数据透视表以后,单元格区域就会显示出特定的格式,以方便对其他区域进行区分,并且也可以更好地查看和分析数据.另外,选中表格或透视表任意位 ...

  5. HTML+CSS---定位(相对定位--绝对定位--固定定位--设置元素的层叠顺序)---表单---设置光标样式---透明度(opacity属性定义元素的不透明度--IE的半透明滤镜)---外边线

    文章目录 定位 静态定位(static) 相对定位(relative) 绝对定位(absolute) 固定定位(fixed) 设置元素的层叠顺序 表单 设置光标样式 透明度 opacity属性定义元素 ...

  6. Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小、字体大小、字体颜色、边框颜色、边框大小等等

    Java实现一行代码生成二维码,可传输到前端展示,可自定义二维码样式,可设置图片格式,可对二维码添加图片,可对二维码添加文字,可以设置二维码大小.字体大小.字体颜色.边框颜色.边框大小等等. 0.准备 ...

  7. Pandas 表格样式设置指南,看这一篇就够了!

    源自/Python数据之道 最近这些年,Python在数据分析以及人工智能领域是越来越火. 这离不开pandas.numpy.sklearn.TensorFlow.PyTorch等数据科学包,尤其是 ...

  8. 【Python】Pandas 表格样式设置指南,看这一篇就够了!

    Pandas 表格样式设置指南 来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 最近这些年,Python在数据分析以及人工智能领域是越来越火. 这离不开pandas.numpy. ...

  9. 最详细的QTabWidget的样式设置

    一. QTabWidget简介 QTabWidget提供一个"选项卡栏"和一个"页面区域",用于显示与每个选项卡相关的页面.默认情况下,选项卡栏显示在页面区域上 ...

最新文章

  1. Linux 普通用户之间免密登陆
  2. linux salt命令 -e,linux 下 Salt 命令的疑难杂症
  3. linux平台 一个简单的helloworld动态库的制作与使用
  4. 学习笔记(23):Python网络编程并发编程-开启线程的两种方式
  5. activemq 安全连接
  6. 戴尔服务器显示e1810,戴尔服务器提示: PowerEdge2950 E1810 HDD 1 Fault该如何解决?求帮助!!!...
  7. 如何摇晃一瓶水使其核聚变?
  8. 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)
  9. 新议题,好多年前的华为面试题
  10. 编程测试,程序员过不去的坎?
  11. 26. Remove Duplicates from Sorted Array【easy】
  12. Linux下的LVM
  13. 面向对象六大原则——单一职责原则
  14. 合唱队形(DP算法入门)
  15. 编程循迹小车传感器怎么定义_「老丁教乐高EV3基础编程」学完练完本课,足矣应付70%的编程要求...
  16. Angular SSR 探究
  17. xp信息服务器iis5.0,XP中安装iis5.0/IIS6.0的详细操作方法步骤(图文教程)
  18. 智能家居的应用研究现状
  19. 使用three.js做一个网页的相册动画
  20. 弘辽科技:淘宝直通车智能推广报告如何解?

热门文章

  1. python亲和性分析法推荐电影论文_关于《Python数据挖掘入门与实战》读书笔记二(亲和性分析)...
  2. 如何提高天猫入驻成功率?掌握这两点即可
  3. app测试之耗电量测试
  4. python全栈开发 * 32知识点汇总 * 180717
  5. 浙江省经信委与新华三签署战略合作协议
  6. 《Java从入门到放弃》JavaSE入门篇:文件操作
  7. java课程设计 猜数游戏 个人
  8. android 两个客户端间的通信(Socket通信)
  9. BeanFactory not initialized or already closed - call 'refresh' before accessing beans
  10. Linux系统管理(六)