大家好,我是Kuls。
好久不见,国庆这几天去大理、丽江玩了一圈,非常推荐,风景简直是非常的nice。很适合去放松自己。
从今天开始,K哥要给大家写一写自动化相关的文章,其实Python写自动化是非常方便的,不管你是Java开发、Go开发、Python开发,学一下自动化其实是很有必要的。
其实在工作的时候,我们有时会去写一些自动化脚本来解放我们劳动力。
好了,废话不多说,开整。
首先要学习Python自动化,基础知识一定是要具备的,像Python的一些基础的语法以及使用方法。
如果你不了解Python,可以去看公众号里面写过的Python基础合集。
什么是自动化?
从字面意思我们就可以知道----自动帮我们去完成某件事
其实在我们日常工作中有很多重复性的劳动,当我们掌握了自动化知识,这些完全可以避免掉。
那K哥写的这个系列主要会讲哪些方面的自动化呢?
office三件套---Excel、PPT、Word,这三者肯定是必讲的,我们很多时候都是在这些文件中进行操作。
除了这三者,我还会来讲讲浏览器相关的自动化、PDF自动化等。
自动化有什么用?
第一点,解法自己的双手,这个毋庸置疑的。
第二点,你可以做出自己的一些小工具。
第三点,.......
为了方便各位读者的理解,我不会像很多教程中一样直接将一些方法列出来。
我希望能够通过一步步实践的方法来教会大家。
今天主要跟大家聊聊Excel相关的自动化,想去学习Excel相关的自动化,那么我们必须先要去了解excel。
Excel其实有两种格式,一个是xls,一个是xlsx。
就例如上面两种,这两种有什么区别呢?
K哥从网上搜集了一些资料,大家可以看看:
1、文件格式不同。xls 是一个特有的二进制格式,其核心结构是复合文档类型的结构,而 xlsx 的核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。
2、版本不同。xls是excel2003及以前版本生成的文件格式,而xlsx是excel2007及以后版本生成的文件格式。
3、兼容性不同。xlsx格式是向下兼容的,可兼容xls格式。
----(来自百度知道)
这里K哥也来补充一下,xls类型的最多可以写入65535行、256列的数据,而xlsx可以最多写入1048576行、16384列的数据。
这点是很重要的,如果你的数据量非常大,比xlsx的最大数据量还要大,那你可能要使用其他的存储数据方式了。
了解完了xls和xlsx两种excel的格式,接下来就开始学习自动化相关知识了。
因为excel是一个文件,这也就意味着我们需要从外部读取它,此时就会用到第三方库xlrd来进行读取。
第一步当然是来安装第三方库:
pip install xlrdorpip3 install xlrd
安装成功后,我们来对Python进击者.xlsx文件进行读取
# 导入第三方库import xlrd# 读取Python进击者.xlsx文件a = xlrd.open_workbook('Python进击者.xlsx')
此时Python进击者.xlsx已经被读取在a变量当中了,那么怎么对它进行一些简单的操作呢?
首先我们要清楚的是一个excel当中会存在多个工作表,也就是上图中红框的地方,这里我们建有三张表。
如何选择哪张工作表,其实有三种实现方式:
# 第一种sheet = a.sheet_by_index(0)# 第二种sheet = a.sheet_by_name('Sheet1')# 第三种sheet = a.sheets()[0]
其中索引从0开始,0就代表第一张工作表。
选取了特定的工作表,那么真正操作数据的步骤来了。
我在表格中插入了四条数据,如何来获取第一行第二列的数据呢?
data = sheet.cell_value(0,1)
其实非常的简单,只需要通过cell_value方法来获取即可。
# 导入第三方库import xlrd# 读取Python进击者.xlsx文件a = xlrd.open_workbook('Python进击者.xlsx')# 第一种sheet = a.sheet_by_index(0)# # 第二种# sheet = a.sheet_by_name('Sheet1')# # 第三种# sheet = a.sheets()[0]data = sheet.cell_value(0,1)print(data)
汇总一下代码,我们来看下运行之后的输出结果:
发现与我们想的是一致的。
总结一下,整体的步骤如下:
除了对指定单元格进行操作,在实际的开发中我们也许想要知道整个表格的数据有多少行,多少列,工作表有多少等等。
其实xlrd也给我们提供了相关的函数,我们直接对其进行调用就行了。
# 获取工作表行数rows_num = sheet.nrows# 获取工作表列数cols_num = sheet.ncols
# 工作表数量sheets_num = a.nsheets# 工作表名称sheets_names = a.sheet_names()# 所有工作表sheets = a.sheets()
其实知道了以上这些知识,我们可以实现通过Python来获取一个excel文件中所有表格的所有数据,你能实现吗?
具体的代码我会放在公众号后台,你可以回复【自动化1】进行获取。
好了,今天的文章就到这,大家肯定没看过瘾,下篇文章更精彩!
据说点个在看,知识更容易进脑子!