为什么要学会使用Excel

在机器学习模型的建立中,不得不借助于Excel强大的统计分析能力,这个时候就牵涉到了如何将python直接处理得到的数据存入excel表格当中以及获取表格的数据进行分析,简单的说,学会使用Python操作Excel文件后,可以运用到机器学习之中,也可以让平常生活中繁琐的工作自动化处理。

Excel的基本使用

Python处理Excel的包是openpyxl,如果你是直接下载的anaconda安装的Python库,那么下载的时候,自带的就已经安装了openpyxl,如果不是,也可以直接在cmd之中,使用pip install openpyxl安装。

安装完成之后,我们应该了解一下Excel的组成部分,如下图所示:

看到上图就应该知道,首先,我们应该获取Excel文件:

wb=openpyxl.load_workbook('1234.xlsx')

对于已经有Excel目标文件来说,使用以上方法,就可以直接获取excel文件,如果你想重新创建一个全新的Excel文件,不妨试试以下方式:

wb=openpyxl.Workbook()

已经获取了Excel,但其实我们的数据都在一个一个的表中,如下图所示:

一个Excel文件中可以有多个表,一般而言操作的都是第一个表,而获取表的方法也有很多,比如:

sheet=wb.worksheets[

0]

sheet=wb[

'吸入类']

以上两种方式都是获取第一个表,要是我们使用wb=openpyxl.Workbook()方式,新创建的一个Excel呢?我们需要创建一个操作的表格:

wb.create_sheet(index=

0,title=

'小猪')

wb.create_sheet(index=

1,title=

'佩奇')

当我们获取表格之后,就可以快乐的操作我们的数据了。

比如这个时候,你想获取表格中的A1单元格中的文本,就可以使用如下方法:

sheet['A1'].value

以上是获取单个单元格的数据,现在我有一个需求,要遍历某个表格中的所有数据,该怎么操作呢?这里我们先假如我有如下表格:

那么遍历起来的代码如下:

import openpyxl

wb=openpyxl.load_workbook(

'1234.xlsx')

sheet=wb.worksheets[

0]

for row

in sheet.iter_rows():

for cell

in row:

print(cell.coordinate, cell.value)

上面是逐行遍历,首先我们获取Excel文件,然后获取当中的第一个表格,然后通过获取行数,以及列数进行遍历,openpyxl获取行数的方法为sheet.iter_rows(),获取列数可以直接通过当前行获取也就是for cell in row,代码简洁明了,实现效果如下:

那么怎么修改数据呢?我们先来看看代码:

sheet[

'A1'].value=

'1111111'

sheet.cell(

1,

1).value=

'1111111'

sheet.cell(

1,

1,

'111111')

这三种方式,都可以修改Excel某个单元格数据,同时也可以通过前两种方式获取到这个单元格的值,python的优点就是这么简单明了。

经过这些操作之后,我们还有一个事情要做,那就是如果保存我们创建,或者修改过后的Excel,其实也很简单,一句话就可以做到,代码如下:

wb.save('1234.xlsx')

这样就将操作的数据,保存到当前目录之下的1234.xlsx中,同样写绝对路径也行。

Excel的样式

在平常的生活当中,Excel表格并不仅仅是写入数据,修改数据,保存数据这样简单的操作,其实还有如果让Excel变的更加美观,比如修改某些字体,边框样式等等等等。

字体样式

那好,我们先来说说如何修改字体这样的样式,我们openpyxl里面有专门的字体样式,可以通过以下方式导入,使用的代码如下:

from openpyxl.styles

import Font, PatternFill, Border, Side, Alignment

font = Font(name=

'微软雅黑', size=

10, bold=

False, italic=

False, vertAlign=

None,

underline=

'none', strike=

False, color=

'FF000000')

这里我们先引入了Excel中的字体样式,然后通过构造函数,创建了一个样式,比如这里创建的字体为微软雅黑,字体大小为10,不加粗,没有斜体,没有下划线,没有删除线,颜色为黑色。

尽然我们创建了一个样式,接下里就是将样式设置到单元格中去,比如将刚才的样式设置到表格11单元格中,以下两种方式都行,代码如下:

sheet[

'A1'].font=font

sheet.cell(

1,

1).font=font

填充样式

说完字体样式,第二个运用最多的就是填充样式,比如给某个单元格填充背景色,或者填充图案等等等等,我们先来看看代码的操作方式:

fill = PatternFill(fill_type=

'darkUp',start_color=

'FFFF00',end_color=

'FF0000')

sheet.cell(

1,

1).fill=fill

这段代码实现的样式如下:

可以看到它的图案类型为darkUp,开始颜色行色,结束颜色为红色,红黄相间的格栅化样式填充,当然它的图案类型还有很多,以下都是:

{‘gray0625’, ‘lightHorizontal’, ‘darkVertical’, ‘darkGray’, ‘darkDown’, ‘solid’, ‘lightTrellis’, ‘darkHorizontal’, ‘gray125’, ‘lightGray’, ‘lightDown’, ‘lightUp’, ‘mediumGray’, ‘darkUp’, ‘darkGrid’, ‘darkTrellis’, ‘lightVertical’, ‘lightGrid’}

具体用到哪个,还要根据你的需求自由的选择,重点需要说明的是,当图案为solid时,默认只填充start_color颜色,也就是黄色,有兴趣的可以试试。

边框样式

第三个要介绍的就是边框样式,边框样式在实际的工作中,可以说也是用的比较多的,了解一下对于实际的工作还是有好处的,操作代码如下:

border = Border(left=Side(border_style=

'dashDotDot',color=

'9932CC'),

right=Side(border_style=

'dashDotDot',color=

'121212'),

top=Side(border_style=

'dashDotDot',color=

'8B0A50'),

bottom=Side(border_style=

'dashDotDot',color=

'B3EE3A'),)

sheet.cell(

5,

4).border=border

上面设置了上下左右四个边框的颜色以及样式,这里我都设置为虚线样式,颜色随机抽取了四个比较深的颜色,实现的效果如下图所示(上红,下绿,左紫,右黑):

当然边框还有很多参数的,如果想运用的更多更广,可以参考openpyxl开发文档,博主这里只介绍最常用的边框样式。

对齐样式

最后一个样式为对齐样式,相对于上面三种样式来说,这个对齐样式每次几乎都用到,现在我们先来弄一个单元格居中对齐,代码如下:

alignment = Alignment(horizontal=

'center',

vertical=

'center',

text_rotation=

0,

indent=

0)

sheet.cell(

5,

3).alignment=alignment

这里我们设置了对齐样式为水平居中,垂直居中,文字旋转角度为0(最多可以旋转180°),缩进为0,比如旋转90度,文字就变成了如下图所示的样式:

当然这种对齐样式还有许多其他参数,但用的最多的也就是这些,如果想了解其他的请前往openpyxl开发文档了解最详细的参数。这里就不做过多的赘述了。

Excel公式

链接公式

样式说完了,我们还需介绍一下Excel公式的应用,比如我们有些Excel表格中有链接,就需要用公式把链接设置成可以点击的超链接模式,同样比如计算某些值的时候,也会用到Excel公式。我们先来讲解以下如何让URL链接可以点击,代码如下:

sheet.cell(6,3).value='=HYPERLINK("%s","%s")' % ("https://www.baidu.com", "百度一下")

上面代码理解起来很简单,就是我要在第六行第三列输入百度一下,且百度一下可以点击跳转到指定的网页之中(第一个参数就是需要跳转的地址)。

这里其实就是excel中的公式,当然你也可以设置某个目录下的exe文件,点击后直接执行exe,也可以设置跳转到某个单元格,比如想点击后跳转到A1,代码如下:

sheet.cell(6,3).value='=HYPERLINK("%s","%s")' % ("#A1", "跳转到A1")

计算公式操作

现在我还有一个需求,比如我要计算下面表中A1到E1这5个数的和,在Excel应该怎么操作呢?

其实也和上面一样,只要你知道Excel中的计算和公式,就可以直接套用到代码中,这样哪怕是编程小白,也基本可以掌握公式的应用规则,因为只要会Excel的都会知道,代码如下:

sheet['F1']='=SUM(A1:E1)'

Excel单元格的合并与拆分

Excel估计已经介绍的差不多了,不过博主刚刚想起来,应该还有一个常用的操作方式,就是合并单元格,这里我们同样先来看一段代码:

sheet.merge_cells('A1:E1')

合并也是操作表结构,这里合并刚上面那个表的数字,可以看到我们合并了A1到E1的所有单元格,同时,合并后的单元格显示第一个单元格内容。

熟话说得好,有合并就有拆分,同样我们也需要拆分单元格,那这样,我们就把先合并的单元格,在拆分成原来的样子,代码如下:

sheet.unmerge_cells('A1:E1')

很简单,代码前面加一个un就行,但这里有一个需要注意的地方,刚合并单元格,默认填充的是第一个单元格中的数据,但拆分单元格,并不会自动填充数据,原先有的整个数据显示在第一个单元格之中,而其他拆分出来的单元格,不会显示任何数据。

总结了这么多,相信对经常使用Excel的小伙伴应该会有所帮助,如果写的还可以记得给点个赞!

python可以自动拆分表格吗_Python最详细的Excel操作方式,你值得拥有!相关推荐

  1. python可以自动拆分表格吗_Python 拆分表格并发送邮件

    所需表格 ----- 点击下载 一 . 表拆成多个表 这个拆表代码是我能找到的最简洁的了.首先用 ExcelWriter 生成一个拆完表后的容纳工作簿,然后调用了 For 循环对某一列进行遍历,are ...

  2. python可以自动拆分表格吗_如何利用Python一键拆分表格并进行邮件发送~

    因为平时经常要将 一张表 拆成工作簿,拆完还要发给不同的对象,工作又使用outlook发邮件,所以本文调用outlook账号进行邮件的发送作为示例:在 一张表拆成多个sheet的基础上,修改了代码,可 ...

  3. VB实现excel自动拆分表格

    工作场景:从系统导出后人工处理完的excel数据,需要按照部门拆分并推送给各部门人员. 传统的工作方式就只能人工一个个部门筛选,复制粘贴出来各自发送. 其实现在有些版本的excel或wps已经集成了根 ...

  4. python 列联表自动拆分_python自动化办公:实现按照一列内容拆分excel

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 作者:卡卡 来源:卡卡的霍格莫德小镇 用python将某一列按照内容分成多个excel 我们经常会 ...

  5. python按行拆分表格_Python几行代码轻松拆分表格

    Python几行代码轻松拆分表格 作者:梅朵 微信公众号:实用办公编程技能 微信号:Excel-Python 什么?,Python几行代码竟然可以按指定轻松拆分表格? 将test.xls中的数据按地区 ...

  6. python 批量读取xlsx并合并_python合并多个excel表格数据-python如何读取多个excel合并到一个excel中...

    python如何读取多个excel合并到一个excel中 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文 ...

  7. python qq自动发消息软件_Python之qq自动发消息的示例代码

    准备:pip install win32gui 可能遇到的麻烦: No module named 'win32gui' 的解决方法(踩坑之旅) 源码: import win32gui import w ...

  8. python按行拆分表格_Python将单元格中的多个值拆分为多行

    使用:#create dataframe df = pd.read_csv(filename, sep=';') #split all values df = df.applymap(lambda x ...

  9. python办公自动化(4)拆分表格

    四.前几天一直忙着摸鱼和休息,明天就要正式上课了开始.也要忙起来了,但正事还是不能忘,今天学习的是python自动化的第四节(拆分),主要还是利用的是xlrd,xlutils这两个,所以没有下载的可以 ...

最新文章

  1. [转]DPM2012系列之四:配置邮件报警功能
  2. python代码用c语言封装_树莓派开发ADC芯片CS1237(C语言和python库开发)
  3. 【数学和算法】协方差矩阵、方差
  4. 【干货】产品经理如何使用大数据构建用户画像
  5. 参考平面及其高度_GCB | 盐沼和红树林湿地类型的转变会改变亚热带湿地对于海平面上升的脆弱性么?...
  6. github/gitee码云文件上传提交记录教程
  7. spring发展历程
  8. 2017双11技术揭秘—阿里数据库进入全网秒级实时监控时代
  9. 8255A置位复位控制字
  10. Python NetworkX – Python图形库
  11. 2019中国旅游与酒店风云榜酒店业榜单公布
  12. 读书笔记 | 自动驾驶中的雷达信号处理(第1章 雷达系统基础)
  13. 2016年高校保送生拟录取名单(清华大学)
  14. 面试产品经理 应该如何介绍自己的优势和劣势?
  15. nginx: [warn] duplicate extension xxxx解决方案
  16. 代码没问题但运行不出来
  17. ShellServiceObjectDelayLoad中的webcheck疑问
  18. python网络爬虫-淘宝商品比价定向爬虫
  19. CSS / 清除浮动+切图+属性书写顺序+页面布局思路
  20. 普通2d视频转3d视频

热门文章

  1. SAP migo增强
  2. 股票风险 股票交易上的投机行为往往十分危险。假设某股票行为十分怪异,每天不是涨停(上涨10%)就是跌停(下跌10%)。
  3. 2步释放esp32c3的GPIO11
  4. 13.矩阵的快速转置算法
  5. 吉林大学软院夏令营面试
  6. 河南工程学院计算机专业学费,2018河南工程学院学费 各专业的收费标准
  7. Centos7安装并配置MySQL5.7
  8. vue移动端日历插件
  9. 概率论归咎于人类智力的弱点
  10. PDF技术(四)-Java实现Html转PDF文件