你不一定知道这个用 Python 快速设置 Excel 表格边框的技巧
上一期获得赠书读者:芈小米,请尽快联系我,安排邮寄~
本篇是呆鸟原创系列 Pandas 百问百答 的第一篇,本系列的特点如下:
目标受众:Python 数据分析小白、从 Excel 处理数据转向用 Pandas 处理数据的新手
为什么要出个系列:目的很简单,就是为了解决新手小白在用 Pandas 处理数据时的实际问题
特点: 每次只解决一两个实际问题,碰到什么问题,就写什么问题
建议:内容不多,一定要上手实际试一下,呆鸟会给大家提供用到的 ipynb 文件与数据文件。
欢迎反馈:呆鸟的公号没有留言功能,也没有公号群,不过可以通过文章末尾的点击原文链接进入简书文章,给呆鸟留言,另外,推荐大家加严小样儿的微信号,严小样儿是位非常热心专业的群主,呆鸟也在他的群里厮混,有什么问题,可以在群里交流,除了呆鸟,还可以与很多数据分析大咖交流、学习。
呆鸟云:本篇虽然是 Pandas 百问百答系列的开篇,但其实用的并不是 Pandas,而是 xlwings,但讲的是如何处理 Pandas 输出的 Excel 文件,为啥呢?因为,很多数据分析结果的用户,比如,部门领导、业务人员他们不会用 Python、Jupyter、Pandas,除非你有 BI 系统,否则大部分人都是看 Excel 的,但 Pandas 的 to_excel 函数输出的 xlsx 文件是不带格式的。
给领导或同事看 Excel,总不能一点格式都不设置吧,这也有点太 low 了,呆鸟就习惯把字体设为微软雅黑、字号设为 10,根据内容自适应列宽、短的文字列设置为居中,数字设置成带千分号的,当然还有百分比和日期格式也要设置,但本篇介绍的是如何快速设置边框。
这里特别要说一下,别小看这个技巧,呆鸟可是研究了好久才解决,openpyxl、xlwings、xlsxwriter,这几个支持库呆鸟找了一溜够也没找到快速设置边框的方法,之前只好用 for 循环,速度超级慢,让人没法接受,不过好在通过一番研究找到了这个快速设置边框的方式,现在分享给大家,当然,如果有朋友有更好的方式,或者也有类似的方式,还请不吝赐教,至于联系方式,简书也可以,去严小样儿的群里也可以。
文归正传,下面就来看下这个功能是怎么实现的。假设这是一家叫小蜜蜂的超市,这家超市刚刚开业,只有苹果、梨、葡萄这三样产品,领导想看下销售情况,直接用 Pandas 输出是 Excel 这样的:
大家可以看到,这个表有几个问题:
边框不完整,只有部分单元格有边框
字体不美观,宋体不如微软雅黑看着好看
列宽不合适,有的列过宽,有的列窄了,比如日期列,都看不见日期了
居中未设置,比如产品列该居中,但居左了。
如果不经常处理格式也就罢了,但如果一天几十上百个表,还手动调整就很头疼了,今天就给大家解决第一个问题,快速设置 Excel 文件边框。
安装 xlwings
直接安装用 pip install xlwings
,用 anaconda 的,已经内置了,见下图。
导入 xlwings
import xlwings as xw
打开 Excel 文件
# 打开存好的 Excel
app = xw.App() # 设置应用
wb = xw.Book('data/小蜜蜂超市销售报表.xlsx') # 打开文件
ws = wb.sheets['Sheet1'] # 选择表格
注意:要养成良好的习惯,数据文件与程序文件要分开存储,一般数据文件存储在
data
子目录里。
获取表格行列
last_column = ws.range(1, 1).end('right').get_address(0, 0)[0] # 获取最后一列
last_row = ws.range(1, 1).end('down').row # 获取最后一行a_range = f'A1:{last_column}{last_row}' # 生成表格的数据范围
这里 a_range
输出的范围是 A1:D6
,即数据表的整个内容。
设置 a_range,也就是
A1:D6
的表格边框
# 设置边框
ws.range(a_range).api.Borders(8).LineStyle = 1 # 上边框
ws.range(a_range).api.Borders(9).LineStyle = 1 # 下边框
ws.range(a_range).api.Borders(7).LineStyle = 1 # 左边框
ws.range(a_range).api.Borders(10).LineStyle = 1 # 右边框
ws.range(a_range).api.Borders(12).LineStyle = 1 # 内横边框
ws.range(a_range).api.Borders(11).LineStyle = 1 # 内纵边框
说明:
Borders()
里的参数,详见下表。
边框位置 | 值 | 说明 |
---|---|---|
xlEdgeTop | 8 | 上边框 |
xlEdgeBottom | 9 | 下边框 |
xlEdgeLeft | 7 | 左边框 |
xlEdgeRight | 10 | 右边框 |
xlInsideHorizontal | 12 | 内横边框 |
xlInsideVertical | 11 | 内纵边框 |
LineStyle = 1
,这里的 1
指的是边框为实线。
边框样式 | 值 | 说明 |
---|---|---|
Transparent | 0 | 透明 |
Solid | 1 | 实线 |
Dashes | 2 | 虚线 |
Double solid | 8 | 双实线 |
看看下图,是不是已经有边框了。
到这里还不算完,还要关闭 Excel,保存 xlsx 文件。
# 保存并关闭 Excel
wb.save('data/小蜜蜂超市销售报表.xlsx')
wb.close()
app.quit()
到此,设置边框的操作就完成了,完整的 ipynb 文件,请找严小样儿加群后找我要。
其它的操作,下期再介绍。
建议大家安装 anaconda,呆鸟文章示例都是用 anaconda 内置的 Jupyter NoteBook 编写与分享的,有了 Jupyter,学起来方便。
还有每次分享的内容不多,大家一定要上手试试,只是看代码,不敲代码,永远也学不会的。
Pandas 上手实战系列
你不一定知道这个用 Python 快速设置 Excel 表格边框的技巧相关推荐
- html数据分析表格api_你不一定知道这个用 Python 快速设置 Excel 表格边框的技巧...
本篇是呆鸟原创系列 Pandas 百问百答 的第一篇,本系列的特点如下: 目标受众:Python 数据分析小白.从 Excel 处理数据转向用 Pandas 处理数据的新手 为什么要出个系列:目的很简 ...
- birt报表表格边框_Python 快速设置 Excel 表格边框
1. 安装 xlwings 直接安装用 pip install xlwings2. 导入 xlwingsimport xlwings as xw 3. 打开 Excel 文件 # 打开存好的 Exce ...
- python快速将excel表格规范导入word
提示:快速将excel表格规范导入word python快速将excel表格规范导入word 前言 二.开发环境 三.实现步骤 1.引入库 2.代码片段 前言 最近接到一个需求,公司的统计需要一个ex ...
- python处理表格数据-基于Python快速处理PDF表格数据
我们有下面一张PDF格式存储的表格,现在需要使用Python将它提取出来. 使用Python提取表格数据需要使用pdfplumber模块,打开CMD,安装代码如下: pip install pdfpl ...
- python快速求EXCEL数据权重
python快速求EXCEL数据权重 1.数据 2.9,1.13,26.98,0.97 3.3,1.16,26.16,0.99 2.5,1.29,27.2,0.99 3.1,</
- python实操100例乘法表_Python编程快速上手——Excel表格创建乘法表案例分析
本文实例讲述了Python Excel表格创建乘法表.分享给大家供大家参考,具体如下: 题目如下: 创建程序multiplicationTable.py,从命令行接受数字N,在一个Excel电子表格中 ...
- python操作统计excel表格,生成新excel表格
0.前言 因产品的同学试着用python统计Excel表格,但百度的程序又一直有各种问题, 所以叫我帮用python实现一个统计Excel表格程序:我之前也没有写过python操作Excel表格的程序 ...
- python处理excel表格数据-零基础使用Python读写处理Excel表格的方法
引 由于需要解决大批量Excel处理的事情,与其手工操作还不如写个简单的代码来处理,大致选了一下感觉还是Python最容易操作. 安装库Python环境 首先当然是配环境,不过选Python的一个重要 ...
- com.alibaba.easyexcel导出指定的列_使用Python导入导出Excel表格
这篇文章的目的是讲解使用python导入导出Excel表格,目前还不涉及数据处理,主要实现为数据的展示. 第一步,准备材料 python3.8的安装包 一个Excel表格 第二步,安装软件 pytho ...
最新文章
- Session 存储方式
- mac下编译安装grafana 4.2.0
- .NET团队送给.NET开发人员的云原生学习资源
- 安装SQL SERVER 2008时出现了SQL SERVER 2005 Express Tool Installed 的错误
- 嗨淘点赞运营版完整源码/刷单/手动派单版本
- mysql 存儲過程調用_mysql-VS2010+MYSQL 存儲過程調用出錯
- Hive入门(三)分桶
- Python文件操作与matplotlib数据可视化案例一则
- CSS3 Transform变形理解与应用
- 怎样把Linux的私钥文件id_rsa转换成putty的ppk格式
- Java计算两点坐标之间的距离
- 第一阶段·Linux运维基础 第3章·文件属性、正则表达式、文件权限
- Oracle快速入门(1)——ORACLE数据库简介
- WINCE ROM 定制大教程
- 微软苏州STCA面试
- 优秀java程序员必须具备的技术技能
- Android setTheme设置透明主题无效
- CMake Tutorial
- android os仿ios,安卓仿ios12桌面全套仿安卓完美版
- IE浏览器快速切换各个版本