效果图:
安装:命令:pip install XlsxWriter (或者 easy_install XlsxWriter)
在下载的过程中慢的话,可以尝试其中一个,速度会比单纯的pip快10倍不止。地址如下
http://pypi.douban.com/simple/ 豆瓣
http://mirrors.aliyun.com/pypi/simple/ 阿里
http://pypi.hustunique.com/simple/ 华中理工大学
http://pypi.sdutlinux.org/simple/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学
https://pypi.tuna.tsinghua.edu.cn/simple 清华
代码如下:
pip install 模块名 -i 网址
以清华镜像举例
pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
注意:如果是原生态的cmd窗口安装的,会提示加个--user命令,读者按照指示即可。
import xlsxwriter
import requests
import pandas as pd
import winreg
import time
# 下载图片,插入Excel
def loadimg(df):
import os
img_list = list(df['图片'])
tupianname_list = []
# 判断结果
isExists = os.path.exists('E:\\临时图片\\')
if not isExists:
# 如果不存在则创建目录
os.makedirs('E:\\临时图片\\')
Itemnumber_list = list(df['商品编号'])
brand_list = list(df['品牌'])
for q, imglink in enumerate(img_list):
if q % 10 == 0:
time.sleep(2)
print('已下载'+str(q)+'张图片,休息2秒.')
imgname = str(Itemnumber_list[q]) + '-' + str(brand_list[q]) + '.jpg'
with open('E:\\临时图片\\'+str(imgname), 'wb') as f:
f.write(requests.get(imglink).content)
tupianname_list.append(str(imgname))
# 加载图片到Excel......
import xlsxwriter
number_list = list(df['序号'])
Itemnumber_list = list(df['商品编号'])
brand_list = list(df['品牌'])
sjdate_list = list(df['上架日期'])
stock_list = list(df['库存'])
wb = xlsxwriter.Workbook(get_desktop() + '\商品数据' + str(int(time.time())) + '.xlsx')
worksheet = wb.add_worksheet("图片")
for i, v in enumerate(tupianname_list):
if i == 0:
worksheet.write_string(0, 0, '序号')
worksheet.write_string(0, 1, '商品编号')
worksheet.write_string(0, 2, '品牌')
worksheet.write_string(0, 3, '上架日期')
worksheet.write_string(0, 4, '库存')
worksheet.write_string(1, 0, number_list[i])
worksheet.write_string(1, 1, Itemnumber_list[i])
worksheet.write_string(1, 2, brand_list[i])
worksheet.write_string(1, 3, sjdate_list[i])
worksheet.write_string(1, 4, stock_list[i])
worksheet.insert_image(row=1, col=5, filename='E:\\临时图片\\' + v,
options={'x_scale': 0.1, 'y_scale': 0.1})
else:
worksheet.write_string(i*6, 0, number_list[i])
worksheet.write_string(i*6, 1, Itemnumber_list[i])
worksheet.write_string(i*6, 2, brand_list[i])
worksheet.write_string(i*6, 3, sjdate_list[i])
worksheet.write_string(i*6, 4, stock_list[i])
worksheet.insert_image(row=i*6, col=5, filename='E:\\临时图片\\' + v,
options={'x_scale': 0.1, 'y_scale': 0.1})
wb.close()
def get_desktop():
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,
r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
return winreg.QueryValueEx(key, "Desktop")[0]
if __name__ == '__main__':
df = pd.read_excel(r'商品资料.xlsx')
loadimg(df)
函数说明:
insert_image
(行,列,文件名[ ,选项] )
在工作表单元格中插入图像。
参数: | |
---|---|
回报: | 0:成功。 |
回报: | -1:行或列超出工作表范围。 |
此方法可用于将图像插入工作表。图像可以是 PNG、JPEG、GIF、BMP、WMF 或 EMF 格式(请参阅下面有关 BMP 和 EMF 的注释):
官方文档