excel表格怎么打勾号
如下图是某公司某天活动安排表,现在想要批量在D列单元格根据完成情况打勾。选中D2:D11单元格区域点击下图选项(Excel插件,百度即可了解详细的下载安装方法,本文这里不作详细叙述)点击【新增插入】点...
2024.11.21前文中说到,数据分析就是像是做饭一样,在数据获取的内容好比收集食材,通常情况下,食材装备好后是需要有容器存放,有一些是需要立马做饭使用的,就放在盆中,还有一些今天用不上,下次需要的先放到冰箱中。同样,数据也是如此,尤其是爬虫获取的数据,通常是需要保存到本地中,方便下次直接使用。
所以数据存储也是数据分析重要的一环,通常情况下,数据量少的时候多数使用本地文件,比如csv文件,数据量多的时候通常使用数据库(超过100w)。
这介绍数据如何存放到本地文本中,在本地文件的储存中,最常用的是txt文件和csv文件,这两种通常是存数据库常用的文件方式。有时候为了方便后续使用,也经常会把数据存到EXCEL文件中,下面我们就了解下Excel文件的写入和读取。
安装好Openpyxl库在Python基础知识的章节中,我们已经初步学习到了文本的写入,不过像这种Excel文件有操作格式,在Python中有专用的Excel的操作库,xlrd和xlwt可以用于xls文件的读取和写入,大单个sheet最大行数是65535, openpyxl可以用于xlsx文件的操作,最大行数达到1048576。逐渐地openpyxl已经成为了excel文件处理最常用的模块之一,功能也十分强大。我们本节内容就使用openpyxl来作为学习的模块。
在线安装使用pip安装,安装命令:
pip install openpyxlExcel读取
在使用openpyxl之前,先熟悉一下Excel中几个常用的概念。首先,我们所说的每一个以xlsx结尾的Excel文件都是一个工作簿。在windows系统中可以使用右键新建一个Excel人文件,这就是创建了一个工作簿,并且将其命名为“成绩单.xlsx”。
打开文件直接会看Excel表格,其实当前默认操作第一个工作表,默认名称为“Sheet1”。点击右边的“⊕”,还可以继续创建一个新的工作表,默认名称为“Sheet2”,当然可以继续创建新的,以此类推。这就是工作簿和工作表的关系。
在openpyxl中也是存在着对应的概念,工作簿是workbook对象,工作表是worksheet对象。从workbook中可以根据名字来获取worksheet。接下来就是每一个单元格,横轴使用的字母,纵轴使用的数字,这样使用字母加数字就可以定位到一个单元格,如图所示,当前定位的位置是A1单元格。
这时一个单元格就是一个cell对象,除了直接使用“A1”这种访问方式, 也可以行(row)和列(column)的方式来访问。那么“A1”单元格的位置就是第1行第1列的元素。在Sheet1中编写几个测试使用的数据,供openpyxl演示使用。
了解相关的概念后,我们可以使用openpyxl来读取Excel文件,加载到Python程序中。
# 导入openpyxl模块,读取excel文件import openpyxl# 获取workbook对象wb = openpyxl.load_workbook(‘成绩单.xlsx‘)print(wb)# 获取worksheet对象sheet = wb[‘Sheet1‘]print(sheet)# 获取cell对象cell = sheet[‘A1‘]print(cell)# 打印cell对象的值print(cell.value)代码结果:
姓名除了使用一个单元格的坐标,还可以使用切片的方式,比如从A1到C2,可以使用sheet[‘A1‘:‘C2‘]的方式来获取,结果是一个tuple,而每一行是一个字tuple。
#A1到C2的内容cell_range = sheet[‘A1‘:‘C2‘]print(cell_range)for rows in cell_range:#每一行的内容print(rows)for cell in rows:#每一个单元格的内容print(cell.value)代码结果:
((, , ), (, , ))(, , )姓名语文数学(, , )张三8090使用这种方式,我们可以根据Excel单元格的位置,把每一行数据转成每一个对象,然后存放在容器中供后面的数据分析时使用。
当然openpyxl功能很强大,不仅仅可以读取已经存在的文件,还可以创建文件。还可以对每一个单元格设置样式等等,不过这些并不是我们需要了解的重点,感兴趣的读者可以自行尝试下,探索新使用的方式,我们本书中的内容仅仅立足于数据分析的内容使用。
Excel写入Excel写入也就是将Python内存中的数据持久化到硬盘的文件中,接下来学习使用openpyxl进行Excel文件的创建和数据写入。
# 导入openpyxl模块import openpyxl# 创建一个Workbook对象wb = openpyxl.Workbook()# 获取当前活动的工作表ws = wb.active#设置表头ws.append([‘姓名‘, ‘语文‘, ‘数学‘, ‘英语‘])#待保存的数据data = [[‘a‘, 90, 90, 90], [‘b‘, 80, 90, 80], [‘c‘, 90, 80, 90]]#循环写入数据for i in data:ws.append(i)#保存成excel文件wb.save("score.xlsx")代码运行后,会在当前目录下创建一个score.xlsx的文件,如果当前目录之前存在过此文件,那么文件会被覆盖掉。score.xlsx文件内容如图所示,正是我们写入的数据。
在Python中一切皆对象,不管是读取还是写入,其实都是使用的Workbook工作薄对象、WorkSheet工作表对象以及cell单元格对象的操作。
数据本地储存在之前的章节中,已经完成了豆瓣电影数据的获取,但是在客观上还是差一个环节,就是把数据储存到某个位置,供下次使用。上一小节中已经了解了如何把数据写到Excel文件中,所以我们需要继续创建一个数据储存的方法,将爬虫功能完善,在后面增加一个数据保存的方法
#将数据保存到excel文件中 def saveData2Excel(allMovies):wb = openpyxl.Workbook()ws = wb.activews.append([‘电影名称‘, ‘上映年份‘, ‘导演‘, ‘类型‘, ‘评价分数‘, ‘评价人数‘, ‘制片国家/地区‘, ‘语言‘])for movie in allMovies:ws.append([movie.name, movie.year, movie.directedBy, movie.genre, movie.rating_num, movie.rating_people, movie.area, movie.language])wb.save("movie.xlsx")print("电影数据储存完毕")allMovies存储是全部豆瓣电影信息对象的集合,saveData2Excel()方法是将它持久化到Excel文件中,只需要将allMovies对象作为参数传给saveData2Excel即可。
#豆瓣电影爬虫main方法if __name__ == ‘__main__‘:# 存放全部电影对象的容器allMovies = []allDetailLinks = getAllLinkList()for detailLink in allDetailLinks:print("当前抓取链接为:{}".format(detailLink))allMovies.append(getMovieDetail(detailLink))time.sleep(2)# 方便测试,设置抓取10个链接后就结束if len(allMovies) == 10:breaksaveData2Excel(allMovies)print("豆瓣电影TOP250信息抓取完毕")为了方便测试,在循环中添加了次数限制,抓取10个链接后就结束,运行结果如图所示,符合我们最初的需求内容。
如果你运行上面的示例代码,可能得出来的结果跟上图并不一样,甚至每一次运行的结果都不一样,这是因为在使用BeautifulSoup获取到的详情页面链接的列表结果是无序的,元素顺序并不跟页面顺序一样,所以抓取的内容顺序并不一样是正常的看到的顺序。
如下图是某公司某天活动安排表,现在想要批量在D列单元格根据完成情况打勾。选中D2:D11单元格区域点击下图选项(Excel插件,百度即可了解详细的下载安装方法,本文这里不作详细叙述)点击【新增插入】点...
2024.11.21如下所示,有一份模拟的txt数据,想放到excel表格里面去分析如果我们直接CTRL+A全选数据,CTRL+C复制,然后在Excel里面CTRL+V粘贴,数据就会变成如下所示情形一:整行数据会放在挤在...
2024.11.22在利用excel统计成绩的时候,往往会使用它的排名,如果一个一个排会造成工作效率非常低,那么如何快速排名呢?今天我们和大家分享的就是如何在excel中快速计算排名。首先打开一张我们需要排名的excel...
2024.11.21在利用Excel制作表格时,有时用户会遇到一个问题,那就是在表格格式全部设置完毕后,保存后再次打开发现格式全部都不见了,这时什么原因呢,一起来跟小编学习一下解决方法吧。首先,我们看到如下两个表格,一个...
2024.11.22在日常生活和工作中,我们经常会利用Excel来制作各种表格搜集和分析数据。那么在编辑好Excel表格后,我们怎样才能将它保存到电脑桌面的呢?那么今天小编就来教大家将编辑好的Excel表格保存到桌面吧!...
2024.11.20