当前位置: 首页 > news >正文

excel 通过openpyxl表格下载和插入图片

 1。 从表格下载图片

def download_excel_images(excel_path, url_path, output_dir):    # 设置路径os.makedirs(output_dir, exist_ok=True)position_log = []res = []# 方法2:用openpyxl记录单元格位置(需额外安装 pip install openpyxl)wb = load_workbook(excel_path)sheet = wb.activeurl_matrix = {}for i, img in enumerate(sheet._images):# 获取图片位置锚点anchor = img.anchorrow_idx = anchor._from.row  # 0-basedcol_idx = anchor._from.col  # 0-basedtop_left_cell = f"{chr(65+anchor._from.col)}{anchor._from.row+1}"img_name = f"{sheet.title}_img_{i}.png"with open(os.path.join(output_dir, img_name), "wb") as f:f.write(img.ref.getvalue())position_log.append(f"{img_name} | 位置: {sheet.title}!{top_left_cell}") img_data = Image.open(img.ref)img_url = upload_img(img_data)# 按行号分组,每行是一个dictif row_idx not in url_matrix:url_matrix[row_idx] = {}url_matrix[row_idx][col_idx] = img_url# pdb.set_trace()for row in sorted(url_matrix.keys()):row_urls = [url_matrix[row].get(col, "") for col in range(3)]res.append(row_urls)df = pd.DataFrame(res, columns=["图片1_url", "图片2_url", "图片3_url"])df.to_excel(url_path, index=False)

2. 通过图片链接将图片插入表格

def insert_img2excel(excel_path, url_path, output_dir):data = pd.read_excel(excel_path)# 创建一个工作簿wb = Workbook()# 获取默认的活动工作表ws = wb.activews.column_dimensions['C'].width = 100i = 2for index, row in data.iterrows():try:response = requests.get(row["merge_image_url2"])img = response.contentimage_path = os.path.join(output_dir, hashlib.md5(img).hexdigest()[:5] + ".png")# with open(image_path, 'wb') as f:#     f.write(img)# pdb.set_trace()except Exception as e:continueimg = Image.open(BytesIO(img))img.save(image_path)image_data = image.Image(image_path)image_data.width, image_data.height = 100, 100ws.add_image(image_data, "C" + str(i))ws.row_dimensions[i].height = 100image_path = image_pathi = i + 1wb.save(url_path)

http://www.lryc.cn/news/589124.html

相关文章:

  • 给 Excel 整列空格文字内容加上前缀:像给文字穿衣服一样简单!
  • Vue获取上传Excel文件内容并展示在表格中
  • 【YOLOv11-目标检测】06-模型部署(C++)
  • Sentinel热点参数限流完整示例实现
  • 【PCIe 总线及设备入门学习专栏 5.1.1 -- PCIe PERST# 信号的作用】
  • 【PCIe 总线及设备入门学习专栏 5.1.2 -- PCIe EP core_rst_n 与 app_rst_n】
  • Excel制作玫瑰图
  • 大语言模型:高考志愿填报的“新纪元智能参谋”
  • 20250715问答课题-基于BERT与混合检索问答系统
  • 论文阅读:arxiv 2025 A Survey on Data Contamination for Large Language Models
  • 第八章,应用题
  • OpenCV 对数变换函数logTransform()
  • 【机器学习】第一章 概述
  • 【机器学习】第二章 Python入门
  • 【安卓笔记】RxJava之flatMap的使用
  • PyTorch笔记6----------神经网络案例
  • 【人工智能99问】神经网络的工作原理是什么?(4/99)
  • Android中Launcher简介
  • MySQL索引与事务详解:用大白话讲透核心概念
  • compose、 pipe 组合函数实现
  • 从底层技术到产业落地:优秘企业智脑的 AI 革命路径解析
  • Basilisk库教程(二)
  • QT——QList的详细讲解
  • SpringBoot3.0 +GraalVM17 + Docker
  • AI大模型训练相关函数知识补充
  • MongoDB基础增删改查命令
  • vscode配置运行完整C代码项目
  • B/S 架构通信原理详解
  • 高标准农田气象站的功能
  • 亚矩阵云手机:破解 Yandex 广告平台多账号风控难题的利器