1. 程式人生 > >python建立表格及插入資料

python建立表格及插入資料

關於表格需要匯入新的模組   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')

拼接之後結果如下!

 如果想爬去其他的內容  只需要用正則寫出來

關於其他除錯參照上面按要求調整