Python将图片插入到Excel中

效果图:

 

 安装:命令: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(,,文件名[ ,选项] )

在工作表单元格中插入图像。

参数:
  • row ( int ) -- 单元格行(零索引)。
  • col ( int ) -- 单元格列(零索引)。
  • 文件名- 图像文件名(如果需要,带有路径)。
  • options ( dict ) -- 图像位置、比例和 url 的可选参数。
回报:

0:成功。

回报:

-1:行或列超出工作表范围。

此方法可用于将图像插入工作表。图像可以是 PNG、JPEG、GIF、BMP、WMF 或 EMF 格式(请参阅下面有关 BMP 和 EMF 的注释):

官方文档

The Worksheet Class — XlsxWriter Documentation

### 回答1: 可以使用Python的openpyxl库来将图片插入Excel。具体步骤如下: 1. 导入openpyxl库和PIL库(用于处理图片): ```python from openpyxl import Workbook from openpyxl.drawing.image import Image from PIL import Image as PILImage ``` 2. 创建一个Workbook对象,并选择要插入图片的工作表: ```python wb = Workbook() ws = wb.active ``` 3. 加载要插入图片,并将其转换为openpyxl的Image对象: ```python img = PILImage.open('image.jpg') img_xl = Image(img) ``` 4. 将Image对象插入到指定单元格: ```python ws.add_image(img_xl, 'A1') ``` 5. 最后保存Excel文件: ```python wb.save('example.xlsx') ``` 完整代码示例: ```python from openpyxl import Workbook from openpyxl.drawing.image import Image from PIL import Image as PILImage wb = Workbook() ws = wb.active img = PILImage.open('image.jpg') img_xl = Image(img) ws.add_image(img_xl, 'A1') wb.save('example.xlsx') ``` ### 回答2: Python是一种高级编程语言,它可以用于不同的应用程序和任务,其之一就是将图片插入Excel。在Python,我们可以使用一些图像处理库和Excel操作库来实现这个功能。 首先,我们需要安装Python图像处理库。其一个主流的库是Pillow库,它是Python Imaging Library的一个分支。Pillow库提供了各种图像处理和图形显示的函数和类。可以在Python很方便地安装Pillow,只需要打开终端窗口或命令提示符窗口,然后键入以下命令: ```python pip install Pillow ``` 接下来,我们需要安装PythonExcel程序库,其主要的库之一是openpyxl。它是用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。可以在Python很方便地安装openpyxl,只需要打开终端窗口或命令提示符窗口,然后键入以下命令: ```python pip install openpyxl ``` 然后,我们可以使用Pillow库来读取并操作我们要插入Excel表格的图像。将图像读取到Pillow对象,可以使用Image.open()函数,例如: ```python from PIL import Image img = Image.open('your_image_path.jpg') ``` 然后,我们可以使用openpyxl库创建一个Excel文件,并将图像插入Excel。首先,我们需要使用Workbook()函数创建一个新的Excel文件对象,然后使用active属性选择第一个工作表。然后,我们可以使用add_image()函数将图像插入到单元格,例如: ```python import openpyxl from openpyxl.drawing.image import Image wb = openpyxl.Workbook() sheet = wb.active img = Image('your_image_path.jpg') sheet.add_image(img, 'A1') wb.save('your_excel_file.xlsx') ``` 在上面的代码,我们使用Image()函数将要插入Excel的图像读取到了openpyxl的Image对象,然后使用add_image()方法将其插入到单元格“A1”。最后,我们使用save()方法将Excel文件保存到本地磁盘上。 总的来说,通过使用Python的Pillow和openpyxl库,可以轻松地将图像插入Excel表格。我们只需要读取图像,然后使用openpyxl库将其插入到合适的单元格,最后将Excel文件保存到本地磁盘上即可。这个过程非常简单和直接,也很适合初学者使用。 ### 回答3: 在Python,我们可以使用openpyxl和Pillow库来实现将图片插入Excel的操作。以下是详细步骤: 第一步:安装必要库 使用pip install指令安装openpyxl和Pillow库,可以使用以下命令: pip install openpyxl pip install Pillow 第二步:读取Excel文件 使用openpyxl的load_workbook函数来读取Excel文件,如下所示: from openpyxl import load_workbook workbook = load_workbook('example.xlsx') worksheet = workbook.active 第三步:插入图片 使用Pillow库的Image函数来读取图片,使用openpyxl的drawing函数来插入图片插入图片的具体步骤如下: from openpyxl.drawing.image import Image from openpyxl.utils import get_column_letter from openpyxl.drawing.image import Image img = Image('example.jpg') #设置单元格宽度和高度 worksheet.column_dimensions[get_column_letter(column)].width = img.width worksheet.row_dimensions[row].height = img.height #将图片插入单元格 worksheet.add_image(img, f"{get_column_letter(column)}{row}") 注意:需要根据图片所在的位置,设置单元格宽度、高度和行列编号。 第四步:保存Excel文件 使用openpyxl的save函数来保存Excel文件,如下所示: workbook.save('example.xlsx') 完整代码如下所示: from openpyxl import load_workbook from openpyxl.worksheet.dimensions import ColumnDimension, DimensionHolder from openpyxl.utils import get_column_letter from openpyxl.drawing.image import Image from openpyxl.utils import range_boundaries from openpyxl.worksheet.cell_range import CellRange from PIL import Image as IMG workbook = load_workbook('example.xlsx') worksheet = workbook.active img = Image('example.jpg') # 设置单元格宽度和高度 worksheet.column_dimensions[get_column_letter(2)].width = img.width worksheet.row_dimensions[2].height = img.height #将图片插入单元格 worksheet.add_image(img, f"B2") #保存Excel文件 workbook.save('example.xlsx')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值