本篇是呆鸟原创系列 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() 里的参数,详见下表。边框位置值说明xlEdgeTop8上边框

xlEdgeBottom9下边框

xlEdgeLeft7左边框

xlEdgeRight10右边框

xlInsideHorizontal12内横边框

xlInsideVertical11内纵边框

LineStyle = 1,这里的 1 指的是边框为实线。边框样式值说明Transparent0透明

Solid1实线

Dashes2虚线

Double solid8双实线

看看下图,是不是已经有边框了。

到这里还不算完,还要关闭 Excel,保存 xlsx 文件。

# 保存并关闭 Excel

wb.save('data/小蜜蜂超市销售报表.xlsx')

wb.close()

app.quit()

到此,设置边框的操作就完成了,完整的 ipynb 文件,请找严小样儿加群后找我要。

其它的操作,下期再介绍。建议大家安装 anaconda,呆鸟文章示例都是用 anaconda 内置的 Jupyter  NoteBook 编写与分享的,有了 Jupyter,学起来方便。

还有每次分享的内容不多,大家一定要上手试试,只是看代码,不敲代码,永远也学不会的。

python设置excel套打_你不一定知道这个用 Python 快速设置 Excel 表格边框的技巧相关推荐

  1. ide怎么设置方法中间加一道横线_word文档编辑:如何快速设置批量脚注?

    编按:说到Word脚注,不少小伙伴们就开始头疼了,觉得它非常难.其实只要你弄懂了脚注操作方法,就会觉得脚注非常简单,再复杂的脚注格式,你也能几分钟就轻松搞定. * * * * * * * * * * ...

  2. python设置excel套打_用强大的Python处理海量的Excel,工作从未如此简单

    excel 欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.面试集锦.学习资料等. 前言 成堆的数据如何导入Excel进行分析? 大量的表 ...

  3. 你不一定知道这个用 Python 快速设置 Excel 表格边框的技巧

    上一期获得赠书读者:芈小米,请尽快联系我,安排邮寄~ 本篇是呆鸟原创系列 Pandas 百问百答 的第一篇,本系列的特点如下: 目标受众:Python 数据分析小白.从 Excel 处理数据转向用 P ...

  4. html数据分析表格api_你不一定知道这个用 Python 快速设置 Excel 表格边框的技巧...

    本篇是呆鸟原创系列 Pandas 百问百答 的第一篇,本系列的特点如下: 目标受众:Python 数据分析小白.从 Excel 处理数据转向用 Pandas 处理数据的新手 为什么要出个系列:目的很简 ...

  5. python金融工程的工具包_《华尔街学堂:三大金融技能工具——Wind. Excel 与 Python》...

    课程目录: Excel实务技能与金融应用 课时 14 课件资料 第01讲课程练习-Councils 2015_25 LTP Financial Data.xlsx 第2 & 3讲练习(1).x ...

  6. python手机端编程环境_移动端自动化测试解决方案(Appium + Python) - (1) 环境搭建...

    最近对iOS自动化测试做了一番探究,希望通过自动化测试更好的去提高公司项目的测试效率 .在网上找了很多的文章和相关资料,都因为时间比较久导致无法实现基本环境的搭建,我在这儿分享给大家分享我的实现过程. ...

  7. python 数组合并排重_并排深度学习:Julia vs Python

    python 数组合并排重 Julia could possibly be the biggest threat to Python. For a variety of applications, J ...

  8. python全栈测试开发_用于全栈自动化测试的最佳Python工具

    我知道大多数测试人员会说Java是他们创建自动化测试的首选语言. 但是我最喜欢的是Python.为什么?为什么是Python ? Al Sweigart,<自动化那些无聊的东西>的作者,P ...

  9. python模块cv2人脸识别_手把手教你使用OpenCV,Python和深度学习进行人脸识别

    使用OpenCV,Python和深度学习进行人脸识别 在本教程中,你将学习如何使用OpenCV,Python和深度学习进行面部识别.首先,我们将简要讨论基于深度学习的面部识别,包括"深度度量 ...

  10. python编程可视化小程序_人人都可以写的可视化Python小程序第二篇:旋转的烟花...

    兴趣是最好的老师 枯燥的编程容易让人放弃,兴趣才是最好的老师.无论孩子还是大人,只有发现这件事情真的有趣,我们才会非常执着的去做这件事,比如打游戏.如果编程能像玩游戏一样变得有趣,我相信很多人就特别愿 ...

最新文章

  1. easyswoole数据库连接池_easyswoole redis连接池:集群迁移教程
  2. 利用ConcurrentHashMap来实现一个ConcurrentHashSet
  3. 从功能测试到性能测试的转型之路
  4. html css考试题选择题,html_JavaScript_css试题
  5. [EffectiveC++]item06:若不想使用编译器自动生成的函数,就该明确决绝
  6. 向量的表示及协方差矩阵
  7. JAVA上传文件 DiskFileUpload组件
  8. SQL Server 2008 R2 安装及登录
  9. PLC编程实现堆栈功能
  10. 网站搜索优化SEO概念与方法
  11. 以5‰的概率计算一个网络准确率达到99.9%的时间和迭代次数---实例三分类mnist 3,4,5
  12. 启动tomcat时候报错(Error deploying web application directory)
  13. 函数——求三个数的最大值
  14. BMP390高精度压力传感器数据读取与处理(基于STM32)
  15. 23种设计模式-个人笔记(二)
  16. edge/chrome更新113版本后页面崩溃 STATUS_STACK_BUFFER_OVERRUN解决方案
  17. 对字节码文件的抑或加密
  18. 时间序列分析预测实战之指数平滑法
  19. abs 三种功能及代码详解 matlab函数
  20. win7修改输入法全/半角切换的方法

热门文章

  1. 一文看懂常见域名后缀的含义
  2. 火山安卓解析某盘直连
  3. ai可以滚轮缩放吗_Illustrator CC for MAC按住alt键滑动鼠标无法缩放?
  4. Windows NT各版本对应关系
  5. opencv双目测距
  6. 2022年全球备用锂电池管理系统行业分析报告
  7. 如何用命令行去修改视频文件格式
  8. 一张图轻松搞懂Hive中的join(内连接、左外连接、右外连接、满外连接)
  9. 渐变色【R Color】
  10. 神经语言程序学(Neruo Linguistic Programming)理解层次