一直都想做一个网页的excel导出功能,最近抽时间研究了下,使用urllib2与BeautifulSoup及xlwt模块实现
urllib2这个模块之前有用过,关于BeautifulSoup模块,可参看http://www.bkjia.com/Pythonjc/992499.html ,介绍的比较详细。
如下是部分视图代码:
首先使用urlopen解析网页数据
1
|
urlfile = urllib2.urlopen( '要解析的url地址' )<br>html = urlfile.read() |
创建BeautifulSoup对象
1
|
soup = BeautifulSoup(html) |
以取表格数据为例,使用findAll取所有tag name='<td>'的数据,并将其内容加到列表中。
1
2
3
|
result = [] for line in soup.findAll( 'td' ): result.append(line.string) |
接下来就是使用xlwt模块生成excel的实现
创建excel文件
1
2
|
workbook = xlwt.Workbook(encoding = 'utf8' ) worksheet = workbook.add_sheet( 'My Worksheet' ) |
向excel文件插入数据
1
2
|
for tag in range ( 0 , 8 ): worksheet.write( 0 , tag, label = result[tag]) |
将结果返回到网页,即可在网页生成excel
1
2
3
4
|
response = HttpResponse(content_type = 'application/msexcel' ) response[ 'Content-Disposition' ] = 'attachment; filename=example.xls' workbook.save(response) return response |