openpyxl函数 导入图片时到原有excel文件时 图片不会按照顺序导入
本帖最后由 maozhipeng 于 2021-3-28 20:38 编辑本人刚学习python 想简化平时的工作任务将图片按名称顺序1 2 3 4 ....18导入原有的excel表中
代码如下 出现的问题是 若导入的是已经有的excel 文件 则图片顺序会颠倒,顺序会变成1 10 11...182 3...9 只有导入新表才能按照顺序 求导入旧表按顺序排图片的解决方法
代码如下
import os
import openpyxl
filePath = 'C:\\Users\\clarance\\Desktop\\婚纱照\\70张照片'
name = os.listdir(filePath)
s=len(name)
#创建新的表格存放图片等
wb=openpyxl.Workbook()
ws=wb.active
ws['A1']="文件名称"
ws['B1']="图片位置"
for each in name:
ws.append(each.split('\n'))
wb.save("123.xlsx")
from openpyxl import load_workbook
import openpyxl
from openpyxl.drawing.image import Image
import os
#将图片插入excel
def insertPic(ws,imgpath):
images = os.listdir(imgpath)
x = 0
for img in images:
addimg = Image('./70张照片/'+img)
addimg.width = 380
addimg.height = 388
cell = 'B' + str(2+x)
ws.add_image(addimg,cell)
x = x+1
return x
basepath = r'C:\Users\clarance\Desktop\婚纱照'
imgpath = r'C:\Users\clarance\Desktop\婚纱照\70张照片'
#basepath = input("请输入成果物的文件夹路径: ")
#imgpath = input("请输入保存图片路径: ")
filename = input("请输入case番号:")
#不创建新表格就需要打开久表格
#wb = openpyxl.load_workbook('原有表格名称.xlsx')
#wb = openpyxl.Workbook()
#ws=wb.active
picNum = insertPic(ws,imgpath)
n=70
y=2
while y<n:
row=ws.row_dimensions
row.height = 300
y=y+1
col=ws.column_dimensions['B']
col.width=50
col=ws.column_dimensions['A']
col.width=20
wb.save(filename+'.xlsx')
wb.close()
print(picNum," pictuers insert finished.")
貌似以前玩EXCEL 的时候,图片的存放顺序就不是按照 表格来排序的。
好像不处理的话,是按照插入的先后顺序。 z5560636 发表于 2021-3-28 20:29
貌似以前玩EXCEL 的时候,图片的存放顺序就不是按照 表格来排序的。
好像不处理的话,是按照插入的先后 ...
如果是写入创建的新表确实是按照顺序 我给图片名称命名就是1到 18
如果写入原有旧表会得到 1 10 11 12...18 2 3 4 5 ....9 这样的图片顺序 很奇怪 maozhipeng 发表于 2021-3-28 20:40
如果是写入创建的新表确实是按照顺序 我给图片名称命名就是1到 18
如果写入原有旧表会得到 1 10 11...
我记得解决的办法,能获取到图片所在的单元表格,自己添加一下,然后在排序。
页:
[1]