《大数据应用技术基础》课件全套 邹贵财 项目1-6 大数据与爬虫 - 数据可视化图表展示_第1页
《大数据应用技术基础》课件全套 邹贵财 项目1-6 大数据与爬虫 - 数据可视化图表展示_第2页
《大数据应用技术基础》课件全套 邹贵财 项目1-6 大数据与爬虫 - 数据可视化图表展示_第3页
《大数据应用技术基础》课件全套 邹贵财 项目1-6 大数据与爬虫 - 数据可视化图表展示_第4页
《大数据应用技术基础》课件全套 邹贵财 项目1-6 大数据与爬虫 - 数据可视化图表展示_第5页
已阅读5页,还剩264页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目一大数据与爬虫目录任务一:发布网站任务二:编写爬虫程序爬取网页所有td标签任务三:编写爬虫程序爬取网页所有div标签任务四:编写爬虫程序爬取网页所有img标签任务五:爬取网页所有文本内容任务六:编写爬虫程序爬取网站数据表任务一:发布网站【任务分析】在IIS实现网站发布并浏览网站。1)把网站文件复制到IIS的网站默认目录中。2)用浏览器成功浏览网址,访问本地网站首页。任务一:发布网站【任务实施】1.执行“开始”菜单的IIS,如图1-1所示。图1-1“开始”菜单的IIS任务一:发布网站2.打开网站的DefaultWebSite,单击“基本设置”,如图1-2所示。图1-2单击“基本设置”任务一:发布网站3.单击“...”打开网站物理路径,如图1-3所示。图1-3单击“...”任务一:发布网站4.查看到网站目录为C:\inetpub\wwwroot,如图1-4所示。图1-4查看到网站目录任务一:发布网站5.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下,如图1-5所示。图1-5文件复制到网站目录任务一:发布网站6.打开浏览器,输入网址,查看到网站首页的页面内容,证明网站发布成功,如图1-6所示。经验分享

就是本地主机的IP地址,通常也被称为localhost。当在浏览器或其他网络应用程序中使用localhost或

时,都是在访问本地部署的服务和网站。即无论是输入localhost还是

,都是指向本地计算机自身。图1-6输入网址任务二:编写爬虫程序爬取网页所有td标签【任务分析】编写爬虫程序爬取网站数据表。1)在IIS发布网站。2)在浏览器浏览网站首页,如图1-7所示。3)编写爬虫程序爬取网站首页的数据表,并打印输出结果。图1-7在浏览器浏览网站首页

任务二:编写爬虫程序爬取网页所有td标签【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。经验分享:发布网站后,在浏览器访问localhost或

,若成功看到网页内容,表示网站发布成功。任务二:编写爬虫程序爬取网页所有td标签2.启动PyCharm,执行File/NewPreject...,如图1-8所示。图1-8执行File/NewPreject...任务二:编写爬虫程序爬取网页所有td标签3.在CreateProject窗口中,设置项目目录D:\Pycharm目录,单击“Create”按钮,如图1-9所示。图1-9单击“Create”按钮任务二:编写爬虫程序爬取网页所有td标签4.在弹出的OpenProject对话框中,单击“ThisWindow”按钮,如图1-10所示。图1-10单击“ThisWindow”按钮任务二:编写爬虫程序爬取网页所有td标签5.在项目的main.py文件中,输入程序爬虫代码,如果输入importrequests代码时,提示需要导入模块,请把鼠标移动requests上,执行Istallpackagerequests,如图1-11所示。。图1-11执行Istallpackagerequests任务二:编写爬虫程序爬取网页所有td标签代码参考:importrequests

fromparselimportSelector

response=requests.get('http://localhost/index.html')

response.encoding='utf8'

vhtml=response.text

items=Selector(text=vhtml)

vtable=items.css('table')

vtr=vtable.css('tr')

foriteminvtr:

item2=item.css('td')

print(item2)任务二:编写爬虫程序爬取网页所有td标签6.如果输入importrequests代码时,提示需要导入模块,请把鼠标移动fromparselimportSelector上,执行Istallpackageparsel,如图1-12所示。图1-12执行Istallpackageparsel任务二:编写爬虫程序爬取网页所有td标签知识链接:parsel库parsel是一个基于XPath和CSS选择器的Python库,用于解析HTML和XML文档。它提供了一种简单而强大的方式来提取网页中的数据。常用用法包括选择器选择、提取数据、嵌套选择、过滤器、提取多个结果、序列化和反序列化等。(1)导入parsel库在应用parsel库时,须在程序前导入parsel库中的Selector类,才用于解析HTML文档。例:导入Selector类fromparselimportSelector(2)数据进行解析使用CSS选择器或XPath表达式来选择特定的元素或元素集合。例:应用parsel库的解析功能items=Selector(text=vhtml)使用Selector类将变量vhtml中的HTML数据进行解析,并将结果保存在items变量中。(3)parsel库的选择器选择功能例1:应用parsel库的选择器选择table标签vtable=items.css('table')使用CSS选择器定位所有的table标签,并将结果保存在vtable变量中。例2:应用parsel库的选择器选择tr标签vtr=vtable.css('tr'):在上一步筛选出的table标签中,再次使用CSS选择器定位所有的tr标签,并将结果保存在vtr变量中。这个语句同样应用到了parsel库的选择器选择功能。例3:应用parsel库的选择器选择td标签item2=item.css('td'):在每个tr标签中,使用CSS选择器定位所有的td标签,并将结果保存在item2变量中。因为例中item变量指tr标签,该语句也有嵌套选择的功能。任务二:编写爬虫程序爬取网页所有td标签7.鼠标右击main.py,执行Run'main'运行程序main.py如图1-13所示。图1-13执行Run'main'运行程序main.py任务二:编写爬虫程序爬取网页所有td标签8.运行程序main.py输出的结果,如图1-14所示。图1-14运行程序main.py输出的结果任务三:编写爬虫程序爬取网页所有div标签【任务分析】编写爬虫程序爬取网站数据表。1)在IIS发布网站。2)在浏览器浏览网站首页,如图1-15所示。3)编写爬虫程序爬取网站首页的数据表,并打印输出结果。图1-15在浏览器浏览网站首页任务三:编写爬虫程序爬取网页所有div标签【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下发布网站。2.启动PyCharm,执行File/NewPreject...,打开main.py文件,逐步输入程序代码,当输入frombs4importBeautifulSoup代码时,若提示Unresolvedreference'bs4',执行Installpackagebeautifulsoup4,安装beautifulsoup4库,如图1-16所示。图1-16执行Installpackagebeautifulsoup4任务三:编写爬虫程序爬取网页所有div标签3.安装beautifulsoup4库成功,会在右下角看到提示“Packagesinstallsuccessfully”,如图1-17所示。图1-17安装beautifulsoup4库成功任务三:编写爬虫程序爬取网页所有div标签代码参考:importrequests

frombs4importBeautifulSoup

response=requests.get('http://localhost/index.html')

response.encoding='utf8'

html=response.text

soup=BeautifulSoup(html,'html.parser')

div_tags=soup.find_all('div',class_='card')

fordiv_tagindiv_tags:

print(div_tag)任务三:编写爬虫程序爬取网页所有div标签4.执行Run'main'运行程序,如图1-18所示。图1-18执行Run'main'运行程序任务三:编写爬虫程序爬取网页所有div标签5.运行程序在终端看到爬取的网站代码,如图1-19所示。图1-19运行程序在终端看到爬取的网站代码任务四:编写爬虫程序爬取网页所有img标签【任务分析】编写爬虫程序爬取网站数据表。1)在IIS发布网站。2)在浏览器浏览网站首页,如图1-20所示。3)编写爬虫程序爬取网站首页的数据表,并打印输出结果。图1-20在浏览器浏览网站首页任务四:编写爬虫程序爬取网页所有img标签【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。2.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序爬虫代码,如图1-21所示。图1-21任务四:编写爬虫程序爬取网页所有img标签参考代码:importrequests

frombs4importBeautifulSoup

response=requests.get('http://localhost/index.html')

response.encoding='utf8'

html=response.text

soup=BeautifulSoup(html,'html.parser')

img_tags=soup.find_all('img')

print(f"访问网站的状态码:{response.status_code}")

print(f"找到了

{len(img_tags)}个img标签")

forimginimg_tags:

print(img['src'])任务四:编写爬虫程序爬取网页所有img标签3.运行程序在终端看到爬取的标签信息,如图1-22所示。图1-22任务五:爬取网页所有文本内容【任务分析】编写爬虫程序爬取网站数据表。1)在IIS发布网站。2)在浏览器浏览网站首页,如图1-23所示。3)编写爬虫程序爬取网站首页的数据表,并打印输出结果。图1-23在浏览器浏览网站首页任务五:爬取网页所有文本内容【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。2.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序爬虫代码,如图1-24所示。图1-24任务五:爬取网页所有文本内容参考代码:importrequests

frombs4importBeautifulSoup

url='http://localhost/index.html'

response=requests.get(url)

response.encoding='utf8'

soup=BeautifulSoup(response.text,'html.parser')

job_cards=soup.find_all('div',{'class':'card'})

forcardinjob_cards:

job_title=card.find('h1').text

job_requirements=[p.textforpincard.find_all('p')]

print(job_title)

print('\n'.join(job_requirements))

print('-'*30)任务五:爬取网页所有文本内容3.运行程序在终端看到爬取的网站代码,如图1-25所示。图1-25任务六:编写爬虫程序爬取网站数据表【任务分析】

编写爬虫程序爬取网站数据表。1)在IIS发布网站。2)在浏览器浏览网站首页,如图1-26所示。3)编写爬虫程序爬取网站首页的数据表,并打印输出结果。图1-26浏览网站首页任务六:编写爬虫程序爬取网站数据表【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。2.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序爬虫代码,如图1-27所示。图1-27点击Istallpackageparsel任务六:编写爬虫程序爬取网站数据表爬虫代码:importrequests

fromparselimportSelector

response=requests.get('http://localhost/index.html')print(response.status_code)

#输出网站响应状态码#发送HTTPGET请求,获取网页的HTML内容。

response.encoding='utf8'#设置响应的文本编码为UTF-8,以正确解析中文字符。

vhtml=response.text

#将响应的文本内容保存在变量vhtml中。

items=Selector(vhtml)

vtable=items.css('table')#通过CSS选择器选取所有的<table>元素。

vtr=vtable.css('tr')

#爬取表格中的文本

fori,iteminenumerate(vtr):

item2=item.css('td')

text=item2.xpath('.//text()').getall()

ifi>0:

print(f"{','.join(text)},")任务六:编写爬虫程序爬取网站数据表3.鼠标右击main.py,执行Run'main'运行程序main.py,如图1-28所示。图1-28执行Run'main'任务六:编写爬虫程序爬取网站数据表4.运行程序main.py输出的结果,如图1-29所示。提示:结果上方的200,是访问网站的响应状态码,200表示成功访问网站网页。图1-29输出的结果项目二数据保存处理目录任务一:爬取网站图片并重命名保存任务二:爬取网站通知保存到word文档任务三:爬取网站数据表排序后保存到txt文件任务四:爬取网站图片路径信息保存在word文档任务五:爬取数据表保存在xlsx文件任务六:爬取数据表保存在csv文件任务一:爬取网站图片并重命名保存【任务分析】编写爬虫程序爬取网站图片并按序列保存。1)在IIS发布网站。2)在浏览器浏览网站首页,如图2-1所示。3)编写爬虫程序爬取网站首页的jpg图片

文件,并保存在d:\htmlimages目录下。图2-1在浏览器浏览网站首页的效果任务一:爬取网站图片并重命名保存【任务实施】

1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。2.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序爬虫代码。importos

importrequests

frombs4importBeautifulSoup

#创建保存图片的目录

save_dir="d:/htmlimages"

ifnotos.path.exists(save_dir):

os.makedirs(save_dir)

#请求网页

url="http://localhost"

response=requests.get(url)

#解析HTML

soup=BeautifulSoup(response.text,"html.parser")

#获取所有图片标签

image_tags=soup.find_all("img")

#下载图片并保存到指定目录

fori,imginenumerate(image_tags):

src=img["src"]

image_url=f"{url}/{src}"

file_name=f"t{i+1}.jpg"

file_path=os.path.join(save_dir,file_name)

response=requests.get(image_url)

withopen(file_path,"wb")asf:

f.write(response.content)

print(f"已保存图片:{file_path}")参考代码:任务一:爬取网站图片并重命名保存经验分享:

采用os.makedirs创建目录save_dir="d:/htmlimages"#创建一个变量save_dir保存目录,拟用于保存图片ifnotos.path.exists(save_dir):#检查该目录如果不存在os.makedirs(save_dir)#创建目录d:/htmlimages

任务一:爬取网站图片并重命名保存3.查看运行结果,可看到终端输出已保存文件信息,如图2-2所示。图2-2查看运行结果任务二:爬取网站通知保存到word文档【任务分析】编写爬虫程序爬取网站数据表排序后保存输出。1)在IIS发布网站。2)在浏览器浏览网站首页,如图2-3所示。3)编写爬虫程序爬取网站的销售数据表,按降序处理排序后保存到d:\data\datas.txt文件中。图2-3在浏览器浏览网站首页的效果任务二:爬取网站通知保存到word文档【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。2.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序爬虫代码,运行程序后,查看输出信息,确认“开工通知”文本内容在标签<divclass="notice">中,如图2-4所示。图2-4输入程序爬虫代码任务二:爬取网站通知保存到word文档参考代码:importrequests

url="http://localhost/index.html"

response=requests.get(url)

response.encoding='utf8'

ifresponse.status_code==200:

html_code=response.text

print(html_code)

else:

print("请求失败,状态码:",response.status_code)经验分享:

在爬虫程序的编写中,需要把获取的网页代码输出,从中找出内容所在的标签,以确定接下的程序语句还要怎样处理。任务二:爬取网站通知保存到word文档3.编辑main.py代码,实现爬取<divclass="notice">内的文本的功能。参考代码:importrequests

frombs4importBeautifulSoup

#发送请求获取网页内容

url="http://localhost/index.html"

response=requests.get(url)

response.encoding='utf8'

ifresponse.status_code==200:

html_content=response.text

#使用BeautifulSoup解析HTML内容

soup=BeautifulSoup(html_content,"html.parser")

#找到指定的<divclass="notice">标签并获取其中的文本

notice_div=soup.find("div",class_="notice")

ifnotice_div:

notice_text=notice_div.get_text()

#将结果保存到文件

file_path=r"d:\data\通知.doc"

withopen(file_path,"w",encoding="utf-8")asfile:

file.write(notice_text)

print("已将通知内容保存到",file_path)

else:

print("未找到指定的通知内容")

else:

print("请求失败,状态码:",response.status_code)任务二:爬取网站通知保存到word文档4.程序运行后,打开D:\data\通知.doc,查看到通知内容已存在文档中,如图2-5所示。图2-5打开D:\data\通知.doc任务三:爬取网站数据表排序后保存到txt文件【任务分析】编写爬虫程序爬取网站数据表排序后保存输出。1)在IIS发布网站。2)在浏览器浏览网站首页,如图2-6所示。3)编写爬虫程序爬取网站的销售数据表,按降序处理排序后保存到d:\data\datas.txt文件中。图2-6在浏览器浏览网站首页的效果任务三:爬取网站数据表排序后保存到txt文件【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。2.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序爬虫代码。importrequests

frombs4importBeautifulSoup

#发送GET请求并获取网页内容

url="http://localhost/index.html"

response=requests.get(url)

response.encoding='utf8'

html_content=response.text

#使用BeautifulSoup解析网页内容

soup=BeautifulSoup(html_content,'html.parser')

#获取销售表格的所有行

table=soup.find('table')

rows=table.find_all('tr')

#创建一个空列表来存储销售数据参考代码:任务三:爬取网站数据表排序后保存到txt文件sales_data=[]

#遍历每一行,提取销售数据

forrowinrows[1:]:#跳过表头行

cells=row.find_all('td')

branch=cells[0].text

sales=int(cells[1].text.strip().replace(",",""))#去除逗号,转换为整数

profit=cells[2].text

order_count=cells[3].text

#将销售数据添加到列表中

sales_data.append((branch,sales,profit,order_count))

#按销售额降序排序销售数据

sales_data.sort(key=lambdax:x[1],reverse=True)

#将销售数据保存到文本文件

output_file=r"d:\data\datas.txt"

withopen(output_file,'w')asfile:

fordatainsales_data:

file.write(f"{data[0]}\t{data[1]}\t{data[2]}\t{data[3]}\n")

print("销售数据已保存到文件.")任务三:爬取网站数据表排序后保存到txt文件经验分享:

水平制表符\t\t是一个转义序列,代表水平制表符(Tab)。在字符串中使用\t时,它会被解释为一个特殊字符,用于产生一个水平制表符的效果。

水平制表符用于在文本中创建水平对齐的间距。在使用\t的地方,它会被替换为适当数量的空格字符,以便在输出中产生等同于一个制表符的效果。通常情况下,一个制表符相当于多个空格字符的宽度。任务三:爬取网站数据表排序后保存到txt文件3.运行后,打开d:\data\datas.txt文件,查看到输出的降序数据,如图2-7所示。图2-7打开d:\data\datas.txt文件任务四:爬取网站图片路径信息保存在word文档【任务分析】编写爬虫程序爬取网站图片路径信息保存在word文档。1)在IIS发布网站。2)在浏览器浏览网站首页,如图2-8所示。3)编写爬虫程序爬取网站首页所有的img标签的src属性设置的图片路径信息,并保存在d:\data\picture.doc文件中。图2-8在浏览器浏览网站首页的效果任务四:爬取网站图片路径信息保存在word文档【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。2.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序爬虫代码。参考代码:importrequests

frombs4importBeautifulSoup

#设置请求头,模拟浏览器行为

headers={

'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/58.0.3029.110Safari/537.3'}

#发送GET请求,获取网页内容

url='http://localhost/index.html'

response=requests.get(url,headers=headers)

html=response.text

#使用BeautifulSoup解析网页内容

soup=BeautifulSoup(html,'html.parser')

#获取所有图片的src属性,并保存到本地文件中

withopen('d:\\data\\picture.doc','w')asf:

forimginsoup.find_all('img'):

src=img['src']

f.write(src+'\n')任务四:爬取网站图片路径信息保存在word文档3.运行后,打开d:\data\picture.doc文件能看到输出文件内容,如图2-9所示。图2-9打开d:\data\picture.doc文件任务五:爬取数据表保存在xlsx文件【任务分析】爬取数据表保存在xlsx文件。1)在IIS发布网站。2)在浏览器浏览网站首页,如图2-10所示。3)编写爬虫程序爬取网站首页数据表的前10行记录,保存在D:/out.xlsx文件中。图2-10在浏览器浏览网站首页的效果任务五:爬取数据表保存在xlsx文件【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。2.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序爬虫代码。参考代码:importrequests

frombs4importBeautifulSoup

fromopenpyxlimportWorkbook

#发送GET请求获取网页内容

url="http://localhost/index.html"

response=requests.get(url)

response.encoding='utf8'

html=response.text

#使用BeautifulSoup解析网页内容

soup=BeautifulSoup(html,'html.parser')

#创建一个电子表格

workbook=Workbook()

sheet=workbook.active

#查找数据表格并提取前10行数据

table=soup.find('table')

rows=table.find_all('tr')[1:11]#跳过表头,只保留前10行数据

#将数据写入电子表格

forrowinrows:

cells=row.find_all('td')

row_data=[]

forcellincells:

row_data.append(cell.text)

sheet.append(row_data)

#保存电子表格

workbook.save("D:/out.xlsx")任务五:爬取数据表保存在xlsx文件3.运行后,打开D:/out.xlsx文件能看到输出文件内容,如图2-11所示。图2-11打开D:/out.xlsx文件任务六:爬取数据表保存在csv文件【任务分析】爬取数据表保存在csv文件。1)在IIS发布网站。2)在浏览器浏览网站首页,如图2-12所示。3)编写爬虫程序爬取网站首页数据表的前10行记录,保存在D:/out.csv文件中。图2-12在浏览器浏览网站首页的效果任务六:爬取数据表保存在csv文件【任务实施】1.在资源管理器打开网站目录C:\inetpub\wwwroot,把网站文件复制到网站目录下。2.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序爬虫代码。参考代码:frombs4importBeautifulSoup

#发送GET请求获取网页内容

url="http://localhost/index.html"

response=requests.get(url)

response.encoding='utf8'

html=response.text

#使用BeautifulSoup解析网页内容

soup=BeautifulSoup(html,'html.parser')

#获取表格

table=soup.find('table')

rows=table.find_all('tr')

#提取数据

data=[]

forrowinrows[1:11]:#提取前10行数据,跳过表头行

cells=row.find_all('td')

row_data=[cell.textforcellincells]

data.append(row_data)

#保存为CSV文件

withopen('D:/out.csv','w',newline='')asfile:

writer=csv.writer(file)

writer.writerow(['放映厅号','第几场','卖出票数','单价','小结'])#写入表头

writer.writerows(data)#写入数据经验分享:csv文件可以用记事本打开,也可以用电子表格软件打开。任务六:爬取数据表保存在csv文件3.运行后,打开D:/out.csv文件能看到输出文件内容,如图2-13所示。图2-13打开D:/out.csv文件能看到输出文件内容项目三处理电子表格目录任务一:新建电子表格任务二:设置单元格格式任务三:添加合计行任务四:拆分保存工作表任务五:批量生成柱形图表任务六:添加饼形图表任务七:批量插入图片任务八:添加新列并进行计算任务一:新建电子表格【任务分析】

现有一份“商铺用电统计表”,编程在“D:/电子表格”目录下创建“商铺用电统计表.xlsx”,并把“商铺用电统计表”的内容写入表格中,工作表命名为“商铺用电统计表”。表3-1商铺用电统计表序号商铺号本月用电量(度)上月用电量(度)同比增长率用电类别1商业街1号32003000+6.67%商业2商业街2号54005000+8.00%商业3商业街3号23002100+9.52%商业4商业街4号88008000+10.00%娱乐5商业街5号36003400+5.88%商业任务一:新建电子表格【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步实现新建电子表格的功能,如图3-1所示。图3-1输入程序代码任务一:新建电子表格参考代码:fromopenpyxlimportWorkbook

#创建一个工作簿

wb=Workbook()

#激活工作表

ws=wb.active

#给工作表命名

ws.title="商铺用电统计表"

#编写表头

ws.append(["序号","商铺号","本月用电量(度)","上月用电量(度)","同比增长率","用电类别"])

#编写表格内容

data=[

[1,"商业街1号",3200,3000,"+6.67%","商业"],

[2,"商业街2号",5400,5000,"+8.00%","商业"],

[3,"商业街3号",2300,2100,"+9.52%","商业"],

[4,"商业街4号",8800,8000,"+10.00%","娱乐"],

[5,"商业街5号",3600,3400,"+5.88%","商业"]

]

#将数据写入工作表

forrowindata:

ws.append(row)

#保存工作簿到指定的路径

wb.save("D:/电子表格/商铺用电统计表.xlsx")

print("Excel文件已成功创建并写入数据!")任务一:新建电子表格2.程序运行后,打开生成的“商铺用电统计表.xlsx”,如图3-2所示。图3-2打开生成的“商铺用电统计表.xlsx”任务二:设置单元格格式【任务分析】现有一份“公交车乘客数统计表”,编写一个python程序实现以下功能:(1)在“D:/电子表格”目录下创建“公交车乘客数统计表.xlsx”(2)并把“公交车乘客数统计表”的内容写入表格中,工作表命名为“公交车乘客数统计表”。(3)检查每行“星期一至星期日”内的数据,同行最大值的单元格设置黄色底纹,字体加粗。序号公交线路星期一星期二星期三星期四星期五星期六星期日11路12001300125014001500110090022路80085087086090075060033路160016501700168017501300100044路95097094098099080070055路110011501200116012501000800表3-2“公交车乘客数统计表”的内容任务二:设置单元格格式【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按任务分析完成设置单元格格式的功能,如图3-3所示。图3-3输入程序代码任务二:设置单元格格式参考代码:#导入openpyxl库

importopenpyxl

fromopenpyxl.stylesimportFont,PatternFill

#创建工作簿和工作表

wb=openpyxl.Workbook()

ws=wb.active

ws.title="公交车乘客数统计表"

#编写表格数据

ws['A1']='序号'

ws['B1']='公交线路'

ws['C1']='星期一'

ws['D1']='星期二'

ws['E1']='星期三'

ws['F1']='星期四'

ws['G1']='星期五'

ws['H1']='星期六'

ws['I1']='星期日'

data=[

[1,'1路',1200,1300,1250,1400,1500,1100,900],

[2,'2路',800,950,870,860,900,750,600],

[3,'3路',1920,1650,1700,1680,1750,1300,1000],任务二:设置单元格格式[4,'4路',950,970,940,980,990,1200,700],

[5,'5路',1100,1150,1200,1160,1050,1000,1324]

]

forrowindata:

ws.append(row)

#检查每行的最大值并设置格式

forrowinrange(2,7):

max_value=max(ws.cell(row=row,column=3).value,ws.cell(row=row,column=4).value,ws.cell(row=row,column=5).value,ws.cell(row=row,column=6).value,ws.cell(row=row,column=7).value,ws.cell(row=row,column=8).value,ws.cell(row=row,column=9).value)

forcolinrange(3,10):

ifws.cell(row=row,column=col).value==max_value:

ws.cell(row=row,column=col).font=Font(bold=True)

ws.cell(row=row,column=col).fill=PatternFill(start_color='FFFF00',end_color='FFFF00',fill_type='solid')

#保存文件

wb.save('D:/电子表格/公交车乘客数统计表.xlsx')任务二:设置单元格格式2.程序运行后,打开“D:/电子表格/公交车乘客数统计表.xlsx”的结果如图3-4所示。图3-4打开“D:/电子表格/公交车乘客数统计表.xlsx”任务三:添加合计行【任务分析】

现在一个“到店人数.xlsx”文件,内有两个工作表,记录了一周的各分店到店人数数据,如图3-5所示。编写一个python程序实现以下功能:(1)在每个工作表的最后一行,增加一行,序号写“合计”。(2)计算各列的第2行以下的数据之后,添加到合计行对应列的单元格中。图3-5现在一个“到店人数.xlsx”文件任务三:添加合计行【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码逐步按任务分析完成添加合计行的功能,如图3-6所示。图3-6输入程序代码逐步按任务分析完成添加合计行的功能任务三:添加合计行参考代码:importopenpyxl

#定义文件路径

file_path="D:/电子表格/到店人数.xlsx"

#加载工作簿

workbook=openpyxl.load_workbook(file_path)

#遍历所有工作表

forsheetinworkbook.worksheets:

#在最后一行添加"合计"

total_row_index=sheet.max_row+1

sheet.cell(row=total_row_index,column=1).value="合计"

#计算第2行以下各列的数据之和

forcolinrange(3,sheet.max_column+1):#因序号和店名在第一、二列,从第三列开始计算

sum_val=0#初始化列的总和

forrowinrange(2,sheet.max_row):#从第二行开始计算,跳过标题行

cell_value=sheet.cell(row=row,column=col).value

#确保单元格中的值是数字类型

ifisinstance(cell_value,(int,float)):

sum_val+=cell_value

#将计算出的总和填入最后一行的对应列中

sheet.cell(row=total_row_index,column=col).value=sum_val

#保存工作簿

workbook.save(file_path)

print("工作簿已更新,添加了合计行。")任务三:添加合计行2.程序运行后,打开“到店人数xlsx”察看运行结果,可看到各表的最后一行已添加了合计行,如图3-7所示。图3-7打开“到店人数xlsx”察看运行结果任务四:拆分保存工作表【任务分析】

现有一个“部门出货流水账.xlsx”文件,内有各部门的所有记录,如图3-8所示。要求编写一个python程序实现以下功能:(1)以部门为单位,把同一部门的记录分拆成一个独立的工作簿中。(2)例如,把所有“食品部”的记录分拆到“食品部.xlsx”中,文件名命名为“食品部.xlsx”,把所有“家居部”的记录分拆到“家居部.xlsx”中,文件名命名为“家居部.xlsx”,如此类推。(3)“部门出货流水账.xlsx”文件现在于“D:\电子表格”目录中。(4)“部门出货流水账.xlsx”的数据表结构和部分数据。任务四:拆分保存工作表表3-3“部门出货流水账.xlsx”的数据表结构和部分数据序号部门名称产品类型出货时间出货数量单价总金额1食品部饮料2023/11/15002.5元1250元2家居部家具2023/11/220800元16000元3服装部衣服2023/11/3100150元15000元4食品部糖果2023/11/420000.5元1000元5家居部灯具2023/11/550400元20000元6服装部鞋子2023/11/680200元16000元7食品部水果2023/11/78003元2400元8家居部家电2023/11/8103000元30000元9服装部皮包2023/11/950500元25000元任务四:拆分保存工作表图3-8现有一个“部门出货流水账.xlsx”文件任务四:拆分保存工作表【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按任务分析完成拆分保存工作表的功能,如图3-9所示。图3-9输入程序代码任务四:拆分保存工作表参考代码:importpandasaspd

importos

#定义原始文件路径

original_file_path="D:/电子表格/部门出货流水账.xlsx"

#使用pandas读取Excel文件

df=pd.read_excel(original_file_path)

#将出货时间列的数据转换为日期类型,只保留年月日

df['出货时间']=pd.to_datetime(df['出货时间']).dt.date

#获取部门列的唯一值列表,假设部门列的名称为"部门名称"

unique_departments=df['部门名称'].unique()

#为每个部门创建一个新的Excel文件

fordepartmentinunique_departments:

#筛选出当前部门的所有记录

department_df=df[df['部门名称']==department]

#定义新的Excel文件名

new_file_path=os.path.join("D:/电子表格",f"{department}.xlsx")

#将当前部门的DataFrame保存到新的Excel文件

department_df.to_excel(new_file_path,index=False)

print("所有部门的记录已分拆到独立的工作簿中。")任务四:拆分保存工作表2.程序运行后,在“D:/电子表格”目录中,已增加了“食品部.xlsx”、“家居部.xlsx”、“服装部.xlsx”等多个工作薄文件,如图3-10所示。图3-10“D:/电子表格”目录任务四:拆分保存工作表3.抽查其中的“食品部.xlsx”文件,打开“食品部.xlsx”文件,查看记录看到全部食品的记录,如图3-11所示。图3-11查看记录看到全部食品的记录任务五:批量生成柱形图表【任务分析】现有一份“各类产品出货表.xlsx”,如图3-12所示。编写一个python程序实现以下功能:(1)在“D:/电子表格”目录下有“各类产品出货表.xlsx”。(2)为“服装产品”、“家居产品”、“食物产品”等三个工作表添加柱形图表。(3)在添加柱形图表过程中,为工作表的数据展示服务,不能删除或修改原工作表数据。表3-4“各类产品出货表.xlsx”的结构和内容图3-12现有一份“各类产品出货表.xlsx”任务五:批量生成柱形图表【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按任务分析完成批量生成柱形图表的功能,如图3-13所示。图3-13输入程序代码任务五:批量生成柱形图表参考代码:importos

importopenpyxl

fromopenpyxl.chartimportBarChart,Reference

#创建目录和文件

output_folder='D:/电子表格'

ifnotos.path.exists(output_folder):

os.makedirs(output_folder)

output_file=os.path.join(output_folder,'各类产品出货表.xlsx')

#打开现有的工作簿

wb=openpyxl.load_workbook(output_file)

#获取或创建工作表

defget_or_create_worksheet(sheet_name):

ifsheet_nameinwb.sheetnames:

returnwb[sheet_name]

else:

returnwb.create_sheet(sheet_name)

#添加柱形图表

defadd_bar_chart(worksheet):

chart=BarChart()

data=Reference(worksheet,min_col=2,min_row=1,max_col=worksheet.max_column,max_row=worksheet.max_row)

categories=Reference(worksheet,min_col=1,min_row=2,max_row=worksheet.max_row)

chart.add_data(data,titles_from_data=True)

chart.set_categories(categories)

worksheet.add_chart(chart,"E5")

#为每个工作表添加柱形图表

forsheet_namein["服装产品","家居产品","食物产品"]:

ws=get_or_create_worksheet(sheet_name)

add_bar_chart(ws)

#保存工作簿

wb.save(output_file)任务五:批量生成柱形图表2.程序运行后,打开“各类产品出货表.xlsx”,查看到各表添加柱形图表的情况,如图3-14所示。图3-14打开“各类产品出货表.xlsx”任务六:添加饼形图表【任务分析】现有一份“业绩比例数据表.xlsx”,编写一个python程序实现以下功能:(1)在“D:/电子表格”目录下创建“业绩比例数据表.xlsx”。(2)根据工作表中的部门数据,添加饼形图表。(3)完成后直接打开“业绩比例数据表.xlsx”文件。表3-4“各类产品出货表.xlsx”的结构和内容序号部门业绩比例(%)1销售部352研发部253运营部204市场部155财务部5任务六:添加饼形图表【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按任务分析完成添加饼形图表的功能,如图3-15所示。图3-15输入程序代码任务六:添加饼形图表参考代码:importopenpyxl

fromopenpyxl.chartimportPieChart,Reference

importos

#创建一个新的Excel工作簿

workbook=openpyxl.Workbook()

sheet=workbook.active

#向工作表中写入部门业绩比例数据

data=[

['部门','业绩比例(%)'],

['销售部',35],

['研发部',25],

['运营部',20],

['市场部',15],

['财务部',5]

]

forrowindata:

sheet.append(row)

#添加饼形图

pie=PieChart()

labels=Reference(sheet,min_col=1,min_row=2,max_row=6)

data=Reference(sheet,min_col=2,min_row=1,max_row=6)

pie.add_data(data,titles_from_data=True)

pie.set_categories(labels)

pie.title="部门业绩比例"

#将图表添加到工作表

sheet.add_chart(pie,"D10")

#保存工作簿

file_path='D:/电子表格/业绩比例数据表.xlsx'

workbook.save(file_path)

#打开Excel文件

os.system(f'startexcel{file_path}')任务六:添加饼形图表2.程序运行后,打开“业绩比例数据表.xlsx”,查看到表中成功添加了饼形图表的情况,如图3-16所示。图3-16打开“业绩比例数据表.xlsx”任务七:批量插入图片图3-17一份“画作品档案.xlsx”任务七:批量插入图片图3-18png图片文件任务七:批量插入图片【任务实施】1.启动PyCharm,执行File/NewPreject...创建Python项目,在项目的main.py文件中,输入程序代码,逐步按任务分析完成批量插入图片的功能,如图3-19所示。图3-19输入程序代码任务七:批量插入图片参考代码:importos

fromopenpyxlimportload_workbook

fromopenpyxl.drawing.imageimportImage

fromPILimportImageasPILImage

#打开Excel文件

file_path=r"D:/电子表格/画作品档案.xlsx"

wb=load_workbook(file_path)

ws=wb.active

#图片文件夹路径

image_folder=r"D:\画作品图片"

#遍历图片文件夹中的图片文件

image_files=[fileforfileinos.listdir(image_folder)iffile.endswith(".png")]

#在Excel中插入图片

fori,image_fileinenumerate(image_files):

img=PILImage.open(os.path.join(image_folder,image_file))

img=img.resize((200,160))#调整图片大小

img_path=os.path.join(image_folder,image_file)

img.save(img_path)#覆盖原始图片,调整大小后保存

img=Image(img_path)

cell=ws.cell(row=i+2,column=2)#从第2行开始,第2列

ws.add_image(img,f'B{cell.row}')#将图片插入到指定单元格的位置

#保存修改后的Excel文件

wb.save(file_path)经验分享:在执行程序时,因为要写入“D:/电子表格/画作品档案.xlsx”文件,必须要保证该文件关闭,若该文件被其他软件打开,则会导致写入失败,程序执行会报错。任务七:批量插入图片2.程序运行后,打开“画作品档案.xlsx”,查看插入图片的效果,如图3-20所示。图3-20打开“画作品档案.xlsx”任务八:添加新列并进行计算【任务分析】现有一份开发业务登记表的电子表格文件“开发业务登记表.xlsx”,如图3-21所示。请使用Python编程,为表格

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论