Excel提取圖片并自動上傳到文件服務器(OOS),獲取文件鏈接

Excel提取圖片并自動上傳到接口

在實際項目中,我們可能經常會遇到需要批量從Excel文件(.xlsx)中提取圖片并上傳到特定接口的場景。今天,我就詳細介紹一下如何使用Python實現這一功能,本文會手把手教你搭建一個完整的解決方案。

一、整體需求

我們要實現的功能主要有三個步驟:

  1. 從Excel文件中提取所有嵌入的圖片。
  2. 將圖片文件上傳到指定的API接口。
  3. 支持從本地文件或網絡鏈接讀取Excel文件。

二、實現原理

Excel文件(.xlsx格式)本質是一個壓縮的ZIP文件,圖片都存儲在內部路徑xl/media下。因此我們使用Python的zipfile庫來解壓并提取其中的圖片文件。

上傳圖片則通過requests庫實現POST請求完成文件上傳。

三、核心代碼實現

步驟1:從Excel提取圖片
from zipfile import ZipFile
import mimetypes
import osdef extract_images_from_excel(xlsx_path):images = []with ZipFile(xlsx_path, 'r') as zf:for name in zf.namelist():if name.startswith("xl/media/"):raw = zf.read(name)fname = os.path.basename(name)mime, _ = mimetypes.guess_type(fname)mime = mime or "application/octet-stream"images.append((fname, raw, mime))return images
步驟2:上傳圖片到接口
import requests
import iodef upload_image(filename, file_bytes, mime_type, token, upload_url):headers = {"authorization": f"Bearer {token}"}files = {"file": (filename, io.BytesIO(file_bytes), mime_type)}response = requests.post(upload_url, headers=headers, data=data, files=files)response.raise_for_status()return response.json()
步驟3:支持Excel文件下載(可選)
import requests
import os
from urllib.parse import urlparsedef download_excel(url, save_dir="downloads"):os.makedirs(save_dir, exist_ok=True)fname = os.path.basename(urlparse(url).path) or "file.xlsx"path = os.path.join(save_dir, fname)resp = requests.get(url)resp.raise_for_status()with open(path, "wb") as f:f.write(resp.content)return path

四、完整使用案例

下面是完整的使用腳本,集成了上述所有功能,支持本地文件和網絡下載:

import sys
import redef main(source):if re.match(r'^https?://', source):excel_path = download_excel(source)else:excel_path = sourceimages = extract_images_from_excel(excel_path)print(f"共找到{len(images)}張圖片,即將上傳...")for fname, content, mime in images:result = upload_image(filename=fname,file_bytes=content,mime_type=mime,token="你的接口token",upload_url="你的上傳URL")if result.get("success"):print(f"上傳成功:{fname} 鏈接為 {result['data']['fileUrl']}")else:print(f"上傳失敗:{fname}")if __name__ == "__main__":source = sys.argv[1]main(source)

使用示例:

python script.py /path/to/file.xlsx
python script.py https://example.com/file.xlsx

五、小結

通過以上介紹,相信你已經掌握了如何從Excel中批量提取圖片并上傳至指定接口的方法。這種方式簡單易用且可擴展性強,在自動化處理場景中尤其有用。

希望本文能夠幫到你,如果有任何問題,歡迎在評論區與我交流!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76811.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76811.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76811.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jmeter利用csv進行參數化和自動斷言

1.測試數據 csv測試數據如下(以注冊接口為例) 2.jemer參數化csv設置 打開 jmeter,添加好線程組、HTTP信息頭管理器、CSV 數據文件設置、注冊請求、響應斷言、查看結果樹 1) CSV 數據文件設置 若 CSV 中數據包含中文,…

騰訊云對象存儲m3u8文件使用騰訊播放器播放

參考騰訊云官方文檔: 播放器 SDK Demo 體驗_騰訊云 重要的一步來了: 登錄騰訊云控制臺,找到對象存儲的存儲桶。 此時,再去刷新剛才創建的播放器html文件,即可看到播放畫面了。

CSS 美化頁面(五)

一、position屬性 屬性值??描述??應用場景?static默認定位方式,元素遵循文檔流正常排列,top/right/bottom/left 屬性無效?。普通文檔流布局,默認布局,無需特殊定位。relative相對定位,相對于元素原本位置進行偏…

Spring MVC 核心注解與文件上傳教程

一、RequestBody 注解詳解 1. 基本使用 作用:從 HTTP 請求體中獲取數據,適用于 POST/PUT 請求。 限制:GET 請求無請求體,不可使用該注解。 示例代碼 Controller RequestMapping("/demo01") public class Demo01Cont…

js原型鏈prototype解釋

function Person(){} var personnew Person() console.log(啊啊,Person instanceof Function);//true console.log(,Person.__proto__Function.prototype);//true console.log(,Person.prototype.__proto__ Object.prototype);//true console.log(,Function.prototype.__prot…

為您的照片提供本地 AI 視覺:使用 Llama Vision 和 ChromaDB 構建 AI 圖像標記器

有沒有花 20 分鐘瀏覽您的文件夾以找到心中的特定圖像或屏幕截圖?您并不孤單。 作為工作中的產品經理,我總是淹沒在競爭對手產品的屏幕截圖、UI 靈感以及白板會議或草圖的照片的海洋中。在我的個人生活中,我總是捕捉我在生活中遇到的事物&am…

Kafka消費者端重平衡流程

重平衡的完整流程需要消費者 端和協調者組件共同參與才能完成。我們先從消費者的視角來審視一下重平衡的流程。在消費者端,重平衡分為兩個步驟:分別是加入組和等待領導者消費者(Leader Consumer)分配方案。這兩個步驟分別對應兩類…

2025年五大ETL數據集成工具推薦

ETL工具作為打通數據孤島的核心引擎,直接影響著企業的決策效率與業務敏捷性。本文精選五款實戰型ETL解決方案,從零門檻的國產免費工具到國際大廠企業級平臺,助您找到最適合的數據集成利器。 一、谷云科技ETLCloud:國產數據集成工…

PageIndex:構建無需切塊向量化的 Agentic RAG

引言 你是否對長篇專業文檔的向量數據庫檢索準確性感到失望?傳統的基于向量的RAG系統依賴于語義相似性而非真正的相關性。但在檢索中,我們真正需要的是相關性——這需要推理能力。當處理需要領域專業知識和多步推理的專業文檔時,相似度搜索常…

ubuntu20.04 遠程桌面Xrdp方式

1,Ubuntu 安裝Xrdp 方法 1.1,安裝xrdp sudo apt install xrdp 1.2,檢查xrdp狀態 sudo systemctl status xrdp 1.3,加入ssl-cert sudo adduser xrdp ssl-cert 1.4,重啟xrdp服務 sudo systemctl restart xrdp 最后…

Java學習手冊:RESTful API 設計原則

一、RESTful API 概述 REST(Representational State Transfer)即表述性狀態轉移,是一種軟件架構風格,用于設計網絡應用程序。RESTful API 是符合 REST 原則的 Web API,通過使用 HTTP 協議和標準方法(GET、…

Spring Boot 核心注解全解:@SpringBootApplication背后的三劍客

大家好呀!👋 今天我們要聊一個超級重要的Spring Boot話題 - 那個神奇的主類注解SpringBootApplication!很多小伙伴可能每天都在用Spring Boot開發項目,但你真的了解這個注解背后的秘密嗎?🤔 別擔心&#x…

weibo_har鴻蒙微博分享,單例二次封裝,鴻蒙微博,微博登錄

weibo_har鴻蒙微博分享,單例二次封裝,鴻蒙微博 HarmonyOS 5.0.3 Beta2 SDK,原樣包含OpenHarmony SDK Ohos_sdk_public 5.0.3.131 (API Version 15 Beta2) 🏆簡介 zyl/weibo_har是微博封裝使用,支持原生core使用 &a…

tomcat集成redis實現共享session

中間件&#xff1a;Tomcat、Redis、Nginx jar包要和tomcat相匹配 jar包&#xff1a;commons-pool2-2.2.jar、jedis-2.5.2.jar、tomcat-redis-session-manage-tomcat7.jar 配置Tomcat /conf/context.xml <?xml version1.0 encodingutf-8?> <!--Licensed to the A…

JavaScript 擴展Array類方法實現數組求和

題目描述&#xff1a;使用原型對象擴展Array類&#xff0c;實現返回數字型數組的和 <script>const arr [1,2,3,4,5,6]Array.prototype.sum function(){return this.reduce((prev,item)>prev item,0)}console.log(arr.sum())</script>求和函數中this 指向調用…

中間件--ClickHouse-11--部署示例(Linux宿主機部署,Docker容器部署)

一、Linux宿主機部署 1、環境準備 操作系統&#xff1a;推薦使用 CentOS 7/8 或 Ubuntu 18.04/20.04。硬件要求&#xff1a; 至少 2 核 CPU 和 4GB 內存。足夠的磁盤空間&#xff08;根據數據量評估&#xff09;。CPU需支持SSE4.2指令集&#xff08;可通過以下命令檢查&#…

鴻蒙NEXT開發權限工具類(申請授權相關)(ArkTs)

import abilityAccessCtrl, { Permissions } from ohos.abilityAccessCtrl; import { bundleManager, common, PermissionRequestResult } from kit.AbilityKit; import { BusinessError } from ohos.base; import { ToastUtil } from ./ToastUtil;/*** 權限工具類&#xff08;…

LVGL學習(二)(lv_label,lv_btn)

3-1_標簽(lv_label) 一、標簽的組成&#xff08;盒子模型&#xff09;?? 標簽由三個核心模塊構成&#xff0c;類似便簽紙的??分層設計??&#xff1a; ??LV_PART_MAIN&#xff08;主體層&#xff09;?? ??功能??&#xff1a;相當于便簽紙的"紙面"&…

深度剖析神經網絡:從基礎原理到面試要點(二)

引言 在人工智能蓬勃發展的今天&#xff0c;神經網絡作為其核心技術之一&#xff0c;廣泛應用于圖像識別、自然語言處理、語音識別等眾多領域。深入理解神經網絡的數學模型和結構&#xff0c;對于掌握人工智能技術至關重要。本文將對神經網絡的關鍵知識點進行詳細解析&#xf…

【java+Mysql】學生信息管理系統

學生信息管理系統是一種用于管理學生信息的軟件系統&#xff0c;旨在提高學校管理效率和服務質量。本課程設計報告旨在介紹設計和實現學生信息管理系統的過程。報告首先分析了系統的需求&#xff0c;包括學生基本信息管理、成績管理等功能。接著介紹了系統的設計方案&#xff0…