| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #-*-coding:utf-8 -*-
- import StringIO
- import xlwt
- import xlrd
- import requests
- import time
- from PIL import Image
- def download_remote_img(url):
- """
- """
- imgname = "/tmp/" + str(int(time.time()*1000))+".bmp"
- with open(imgname,"wb+") as f:
- res = requests.get(url)
- if res.status_code == 200:
- f.write(res.content)
- return imgname
- class ExcelTool(object):
- """
- """
- def __init__(self,filename=None):
- self.filename = filename
- self.book = xlwt.Workbook(encoding="utf-8",style_compression=0)
- self.rbook = xlrd.open_workbook(filename)
- self.sheet = self.rbook.sheet_by_index(0)
- def save_data(self,sheet,header,data):
- """
- """
- sheet = self.book.add_sheet(sheet,cell_overwrite_ok=True)
- #添加表头
- for i in range(0,len(header)):
- sheet.write(0,i,header[i])
- #添加数据
- style = xlwt.easyxf('align: wrap on')
- for i in range(0,len(data)):
- for j in range(0,len(data[i])):
- if j < len(data[i])-1:
- sheet.write(i+1,j,data[i][j],style)
- else:
- if i < 5:
- self.insert_imgs(sheet,data[i][j],(i,j))
- output = StringIO.StringIO()
- self.book.save(output)
- self.book.save("/tmp/demo.xls")
- return output.getvalue()
- def insert_imgs(self,sheet,imgs,cell):
- """
- """
- return
- i,j = cell
- for index,img in enumerate(imgs):
- j = j+index
- #imgpath = download_remote_img(img)
- #sheet.insert_bitmap(imgpath,i,j,scale_x=1, scale_y=1)
- def get_data(self):
- """
- """
- dct = {}
- data = []
- for i in range(1, self.sheet.nrows):
- row_list = self.sheet.row_values(i)
- data.append(row_list)
- return data
- #if __name__ == "__main__":
- # mexcel = ExcelTool("/tmp/demo.xls")
- # mexcel.save_data(u"测试",[u"事件类型"],[[u"漏洞事件"]])
|