python建立表格及插入資料
阿新 • • 發佈:2019-01-23
關於表格需要匯入新的模組 xlwt
這裡建立一個職業需求分佈表為例子
import xlwt #excel 2007版之前建立的表格。xls結尾的,需要用xlwt模組匯入 #Excel 2007版之後建立的表格是。xlsx結尾的,需要使用openpxyl模組倒入 #建立工作博 wb =xlwt.Workbook(encoding='utf-8') #括號內參數為表名 ws = wb.add_sheet('職位需求分析表') #引數1:行數 #引數2:列數 從0開始計數 #引數3:值 即單元格的內容 ws.write(0,0,label = '序號') ws.write(0,1,label = '職位') ws.write(0,2,label = '意向城市') ws.write(0,3,label = '薪資範圍') ws.write(1,0,label = '01') ws.write(1,1,label = 'python研發工程師') ws.write(1,2,label = '北京') ws.write(1,3,label = '30k-50k')
結果如下!
1.設定表格寬度!
import xlwt workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
worksheet.write(0, 0,'My Cell Contents')
# 設定單元格寬度
worksheet.col(0).width = 3333
workbook.save('cell_width.xls')
2.輸入一個日期到單元格
import xlwt import datetime workbook = xlwt.Workbook() worksheet = workbook.add_sheet('My Sheet') style = xlwt.XFStyle() style.num_format_str = 'M/D/YY' # Other options: D-MMM-YY, D-MMM, MMM-YY, h:mm, h:mm:ss, h:mm, h:mm:ss, M/D/YY h:mm, mm:ss, [h]:mm:ss, mm:ss.0 worksheet.write(0, 0, datetime.datetime.now(), style) workbook.save('Excel_Workbook.xls')
3.向單元格新增一個公式
import xlwt workbook = xlwt.Workbook() worksheet = workbook.add_sheet('My Sheet') worksheet.write(0, 0, 5) # Outputs 5 worksheet.write(0, 1, 2) # Outputs 2 worksheet.write(1, 0, xlwt.Formula('A1*B1')) # Should output "10" (A1[5] * A2[2]) worksheet.write(1, 1, xlwt.Formula('SUM(A1,B1)')) workbook.save('Excel_Workbook.xls')
4.向單元格里面新增一個單元格
5.合併同列行
import xlwt workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
worksheet.write_merge(0, 0, 0, 3, 'First Merge') # Merges row 0's columns 0 through 3. font = xlwt.Font() # Create Font
font.bold = True # Set font to Bold style = xlwt.XFStyle() # Create Style
style.font = font # Add Bold Font to Style
worksheet.write_merge(1, 2, 0, 3, 'Second Merge', style) # Merges row 1 through 2's columns 0 through 3.
workbook.save('Excel_Workbook.xls')
6.設定單元格內其他對齊方式
import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('My Sheet')
alignment = xlwt.Alignment() # Create Alignment
alignment.horz = xlwt.Alignment.HORZ_CENTER # May be: HORZ_GENERAL, HORZ_LEFT, HORZ_CENTER, HORZ_RIGHT, HORZ_FILLED, HORZ_JUSTIFIED, HORZ_CENTER_ACROSS_SEL, HORZ_DISTRIBUTED
alignment.vert = xlwt.Alignment.VERT_CENTER # May be: VERT_TOP, VERT_CENTER, VERT_BOTTOM, VERT_JUSTIFIED, VERT_DISTRIBUTED
style = xlwt.XFStyle() # Create
Style style.alignment = alignment # Add Alignment to Style
worksheet.write(0, 0, 'Cell Contents', style)
workbook.save('Excel_Workbook.xls')
7.為單元格新增邊框
8.單元格的背景顏色
以上8條內容均屬轉載!均為自己學習所用
在做完這一步的時候!我們就可以進階做下一步! 向表格裡插入資料
這裡以智聯招聘的一部分作為插入的資料
from urllib import request
import requests
import re
import json
import xlwt
list = []
dict={
'1':'0',
'2':'60',
'3':'120',
'4':'180',
'5':'240'
} #這裡為爬去前5頁的網站迴圈
#p =2
#for x in range(60,300,60)
#p +=1 觀察規律之後可以用這種方法!其他方法都有1
for x,y in dict.items():
url = 'https://fe-api.zhaopin.com/c/i/sou?start={}&pageSize=60&cityId=530&workExperience=-1&education=-1&companyType=-1&employmentType=-1&jobWelfareTag=-1&kw=python&kt=3&lastUrlQuery=%7D%22p%22:{},%22jl%22:%22530%22,%22kw%22:%22python%22,%22kt%22:%223%22%7D'.format(y,x)
req = requests.get(url,headers ={
'User-Agent':"Mozilla/5.0(Macintosh;IntelMacOSX10.6;rv:2.0.1)Gecko/20100101Firefox/4.0.1",
})
pat = re.compile(r'.*?"company":.*?"url":.*?"name":(.*?)"size".*?"positionURL":.*?"salary"(.*?)"emplType"(.*?)"jobName":(.*?)"industry"',re.S)
ree = re.findall(pat,req.text)
list.append(ree)
將獲取的資料插入建立的表中
wb = xlwt.Workbook(encoding='utf-8')
ws = wb.add_sheet('智聯python招聘資訊')
ws.write(0,0,label='序號')
ws.write(0,1,label='招聘公司')
ws.write(0,2,label='工資')
ws.write(0,3,label='職業')
ws.write(0,4,label='職位')
a= 1
for index in list:
# print(index)
for x in index:
# print(x)
ws.write(a,0,label=a)
ws.write(a,1,label=x[0])
ws.write(a,2,label=x[1])
ws.write(a,3,label=x[2])
ws.write(a,4,label=x[3])
a +=1
ws.col(4).width = 15999
ws.col(1).width = 13999
wb.save('pipi.xls')
拼接之後結果如下!
如果想爬去其他的內容 只需要用正則寫出來
關於其他除錯參照上面按要求調整