前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用Python操作Excel完成自动办公(一)

如何用Python操作Excel完成自动办公(一)

原创
作者头像
python鱼霸霸
修改2020-06-11 10:14:25
1.9K0
修改2020-06-11 10:14:25
举报
文章被收录于专栏:python入门学习教程

最近工作真是超级忙,已经断更1个多月的样子了,上次我们已经写到了利用爬虫批量点赞。

上一篇文章中,我突破了登录和令牌的限制,终于用 Python 成功发送了一条微博。并且利用session继承cookies完成了批量点赞的任务,在解决问题的过程中,发现了以下爬虫注意点:

爬虫注意点

①user-agent 的请求头一定要加

②有些网站会根据referer 来反爬虫

③遇到问题要 分析请求、找出原因

④不同请求的referer 可能不一样

⑤遇到令牌 (token) 之类的校验,可以在网页源代码或请求中寻找

到这里,相信跟着我一起学习的朋友,你已经入门爬虫了。现在咱们已经学会了怎么用 python 来写一个爬虫程序爬取数据,但是有一点需要注意的是,之前的写爬取豆瓣读书Top250页面的数据,咱们只是将爬虫获取到的数据打印了出来,并没有保存。

今天这一课,我们就要学习怎么来保存数据到本地,或者说excel文件。

爬虫的三个步骤

①获取数据

②处理数据

③存储数据

上述的三个步骤,我们已经基本掌握了前两个,如果爬虫获取的数据不能保存下来的话,是没有任何意义的。

这一篇文章,咱们就来学习一下爬虫的最后一个步骤——如何存储数据到本地。

在没有学习python之前,我相信很多朋友都是手动地把我们需要的网页中的数据信息一条一条地复制粘贴到我们需要的地方,这样不仅耗时还非常容易让人疲倦和感到枯燥。

接下来,我将带着各位读者朋友如何学会用 Python 来操作 Excel 文件,并将爬取的数据保存到 Excel 文件当中。

Excel 的基本介绍

Excel 是我们日常工作中一款非常常用的数据处理软件,Excel主要是包含了 文件名单元格工作表 三个概念。

Excel表格的文件名不用过多解释,一个Excel文件中可以有多个工作表,而一个工作表中又可以含有很多的单元格,单元格构成了表格的基本结构。

openpyxl模块

Python 对 Excel 文件的操作主要就是对上面这几个概念的操作,接下来我们通过openpyxl模块来操作 Excel 文件。

用openpyxl 写文件

要把内容写入到 Excel 文件,首先需要创建一个 Excel 文件,使用 openpyxl 创建 Excel 文件的方法如下:

代码语言:javascript
复制
# 从 openpyxl 引入 Workbook(工作簿)类
from openpyxl import Workbook

# 通过 Workbook 类实例化一个工作簿
wb = Workbook()

我们通过上面的方法就成功新建了一个空的 Excel 文件。

接下来需要指定默认的工作表,不然 Python 会不知道把内容写到哪里。指定完工作表后,我们就可以对这个文件进行后续的操作。

代码语言:javascript
复制
# 从 openpyxl 引入 Workbook(工作簿)类
from openpyxl import Workbook

# 通过 Workbook 类实例化一个工作簿
wb = Workbook()

# 指定默认工作表
sheet = wb.active

# 给工作表重命名
sheet.title = '5月份采购统计表'

wb.active方法指定了默认的工作表,并赋值给sheet变量,然后用title属性重命名默认工作表。

如果你知道工作表的文件名,也可以用wb['工作表名']的方式选择对应的工作表,如:wb['5月份采购统计表

']

单行数据写入

接下来,可以在工作表中写入数据了。

在指定 单元格 内写入数据的方法如下:

代码语言:javascript
复制
# 往 A1 单元格写入电脑
sheet['A1'] = '电脑'

用字典赋值的方式,把单元格坐标:比如 A1 作为键,把内容作为值传入到一个单元格内,这就是一个写入数据的过程。

咱们还可以使用 append() 方法一次性往工作表内传入一个列表用于写入一行数据:

代码语言:javascript
复制
# 传入一个列表来写入一行数据
row = ['办公用品', '采购数量', '支出金额']
sheet.append(row)

多行数据写入

爬虫爬取的数据肯定是不止一行的。当我们需要写入多行数据时,可以用 for 循环 一行行地写入。

代码语言:javascript
复制
# 用列表存储的多行数据
  data = 
  [
  ['办公用品', '采购数量', '支出金额'],
  ['电脑', 2, 10000],
  ['签字笔', 20, 60]
  ]

# for循环写入多行数据的方法
for row in data:
  sheet.append(row)

数据已经写入到我们指定的单元格中了,接下来调用 wb.save('文件名.xlsx') 把 Excel 文件保存好,不然我们辛辛苦苦写入的数据就会丢失。

示例:

代码语言:javascript
复制
# 从 openpyxl 引入 Workbook(工作簿)类
from openpyxl import Workbook

# 通过 Workbook 类实例化一个工作簿,用于新建工作簿
wb = Workbook()

# 指定默认的工作表
sheet = wb.active

# 给工作表重命名
sheet.title = '5月份采购统计表'

# 用列表存储的多行数据
data =   [
  ['办公用品', '采购数量', '支出金额'],
  ['电脑', 2, 10000],
  ['签字笔', 20, 60]
  ]
  
# for循环写入多行数据的方法
for row in data:
  sheet.append(row)

# 保存 Excel 文件
wb.save('5月采购统计.xlsx')                                                                          

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 爬虫注意点
  • 爬虫的三个步骤
  • Excel 的基本介绍
  • openpyxl模块
    • 用openpyxl 写文件
      • 单行数据写入
        • 多行数据写入
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档