python 通过url获取到的图片的io.BytesIO流保存到excel中

python 通过url获取到的图片直接保存插入到excel中

import xlsxwriter
from io import BytesIO
import requests as req
from PIL import Image
import io


url="https://xxxxxx.png" # 图片的url
response = req.get(url)
img = Image.open(BytesIO(response.content)).convert("RGB")
size = (194, 194)
img.thumbnail(size)
new_name = url.split("/")[-1].split(".")[0]
buffer = io.BytesIO()  # 创建缓存
img.save(buffer, format="png")  # 把plt生成的图片保存在缓存中
# img_data = buffer.getvalue()  # 获取缓存中的二进制文件


workbook = xlsxwriter.Workbook('a.xlsx')  # 初始化workbook
worksheet1 = workbook.add_worksheet('sheet1')  # 增加worksheet

worksheet1.insert_image(6, 0, '', {'image_data': buffer, 'x_scale': 1/1.1, 'y_scale': 1/0.93})
# insert_image(row,col,image,options)
# row:int行索引,col:int列索引,image:string图片文件名(含路径)
# options:dict
# {
#     'x_offset': 0,    水平方向偏移像素值
#     'y_offset': 0,    垂直方向偏移像素值
#     'x_scale': 1,     水平方向缩放比例
#     'y_scale': 1,     垂直方向缩放比例
#     'url': None,
#     'tip': None,
#     'image_data': None,      在io.BytesIO中添加内存中的字节流
#     'positioning': 2,        控制图片对象位置
# }

workbook.close()  # 保存出xlsx文件
buffer.close()  # 关闭缓存

效果:
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`read_excel` 是 `pandas` 库提供的用于读取 Excel 文件的函数。它的用法如下: ```python pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=False, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, keep_default_na=True, verbose=False, parse_dates=False, date_parser=None, thousands=None, comment=None, skipfooter=0, convert_float=True, mangle_dupe_cols=True, **kwds) ``` 下面是各参数的含义: - `io`: 文件路径、URL、用于打开文件的文件型对象或者是可打开文件的字符串。例如,`'path/to/file.xlsx'`、`'http://example.com/file.xlsx'`、`BytesIO(raw_data)` 等等。必须指定。 - `sheet_name`: 如果 Excel 文件有多个 Sheet,指定要读取的 Sheet 名称或索引。默认为 `0`,即读取第一个 Sheet。可以是单个字符串或整数,或者是一个字符串列表或整数列表,以读取多个 Sheet。 - `header`: 指定 Excel 文件作为列名的行数,默认为 `0`,即第一行。如果没有表头,可以设置为 `None`。 - `names`: 指定列名,如果文件没有列名,则设置为 `None`。 - `index_col`: 指定哪一列作为行索引,可以是列名或列的序号。默认为 `None`,即自动生成行索引。 - `usecols`: 指定需要读取的列,可以是列名或列的序号。默认为读取所有列。 - `squeeze`: 如果数据只包含一个列,返回一个 Series 对象。如果为 `False`,返回一个 DataFrame 对象。默认为 `False`。 - `dtype`: 指定每一列的数据类型,可以是字典或者函数。例如,`dtype={'列名': np.float64}`,或者 `dtype=str`。 - `engine`: 指定用于读取 Excel 文件的引擎。可以是 `xlrd`、`openpyxl` 或 `odfpy`。如果未指定,则根据文件扩展名自动选择引擎。 - `converters`: 将指定列名转为指定的数据类型。例如,`converters={'列名': str}`。 - `true_values` 和 `false_values`: 指定哪些字符串应该被解析为 `True` 和 `False`。 - `skiprows`: 要跳过的行数,从文件开头开始计数。例如,`skiprows=[0, 1]` 表示跳过前两行。 - `nrows`: 要读取的行数。 - `na_values`: 指定哪些字符串应该被解析为缺失值。 - `keep_default_na`: 是否保留默认的缺失值。默认为 `True`。 - `verbose`: 是否打印读取过程的详细信息。默认为 `False`。 - `parse_dates`: 将指定的列解析为日期时间。可以是列名或列的序号。默认为 `False`。 - `date_parser`: 用于解析日期时间的函数。 - `thousands`: 指定千位分隔符。 - `comment`: 指定注释符号。 - `skipfooter`: 跳过文件末尾的行数。 - `convert_float`: 是否将浮点数转为整数。默认为 `True`。 - `mangle_dupe_cols`: 是否重命名重复的列名。默认为 `True`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值