国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JAVA POI的excel中包含圖片進(jìn)行讀取保存,單張圖片,多張圖片

這篇具有很好參考價(jià)值的文章主要介紹了JAVA POI的excel中包含圖片進(jìn)行讀取保存,單張圖片,多張圖片。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

JAVA POI的excel中包含圖片進(jìn)行讀取保存,單張圖片,多張圖片

---------------------------------------------效果----------------------------------------------------------

1.單張圖片
java 提取excel中圖片,poi導(dǎo)入導(dǎo)出,java,excel,開發(fā)語言

2.多張圖片
java 提取excel中圖片,poi導(dǎo)入導(dǎo)出,java,excel,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-670945.html

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPicture;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFShape;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.PictureData;

public class importExcelByImg {

	public static void main(String[] args) {
		// 1.一個(gè)單元格一個(gè)圖片
		importExcelOne();
		// 2.一個(gè)單元格多個(gè)圖片
		importExcelTwo();

	}

	/**
	 * 1.一個(gè)單元格一個(gè)圖片
	 */
	public static void importExcelOne() {
		try {
			FileInputStream fileInputStream = new FileInputStream("D://1603169080802.xls");

			HSSFWorkbook hssfWorkbook = new HSSFWorkbook(fileInputStream);// 工作簿

			HSSFSheet sheet = hssfWorkbook.getSheetAt(0);// 工作表

			int lastRowNum = sheet.getLastRowNum();// 獲取最后一行序號,從零開始

			Map<String, PictureData> picMap = new HashMap<>();// 存儲圖片信息和坐標(biāo)

			List<HSSFShape> list = sheet.getDrawingPatriarch().getChildren();

			if (list != null && list.size() > 0) {// 處理獲取圖片信息和坐標(biāo)
				list = list.stream().filter(item -> item instanceof HSSFPicture).collect(Collectors.toList());// 過濾出圖片的數(shù)據(jù)
				for (HSSFShape hssfShape : list) {
					HSSFPicture hSSFPicture = (HSSFPicture) hssfShape;
					HSSFClientAnchor hSSFClientAnchor = (HSSFClientAnchor) hSSFPicture.getAnchor();
					PictureData pictureData = hSSFPicture.getPictureData();
					picMap.put(hSSFClientAnchor.getRow1() + "," + hSSFClientAnchor.getCol1(), pictureData);
				}
			}

			for (int i = 1; i <= lastRowNum; i++) {
				HSSFRow row = sheet.getRow(i);
				String name = row.getCell(0) == null ? "" : row.getCell(0).getStringCellValue();
				String sex = row.getCell(1) == null ? "" : row.getCell(1).getStringCellValue();

				// 獲取圖片數(shù)據(jù)
				PictureData pictureData = picMap.get(i + "," + 2);
				String path = "";
				if (pictureData != null) {
					String suggestFileExtension = pictureData.suggestFileExtension();// 圖片格式
					path = "D://" + i + "-2." + suggestFileExtension;// 存儲路徑
					FileOutputStream out = new FileOutputStream(path);// 流寫入
					out.write(pictureData.getData());
					out.close();
				}

				System.out.println("名稱:" + name + ",    性別:" + sex + ",    圖片存儲路徑:" + path);

			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 1.一個(gè)單元格多圖片
	 */
	public static void importExcelTwo() {
		try {
			FileInputStream fileInputStream = new FileInputStream("D://1603169081675.xls");

			HSSFWorkbook hssfWorkbook = new HSSFWorkbook(fileInputStream);// 工作簿

			HSSFSheet sheet = hssfWorkbook.getSheetAt(0);// 工作表

			int lastRowNum = sheet.getLastRowNum();// 獲取最后一行序號,從零開始

			Map<String, List<PictureData>> picMap = new HashMap<>();// 存儲圖片信息和坐標(biāo)

			List<HSSFShape> list = sheet.getDrawingPatriarch().getChildren();

			if (list != null && list.size() > 0) {// 處理獲取圖片信息和坐標(biāo)
				list = list.stream().filter(item -> item instanceof HSSFPicture).collect(Collectors.toList());// 過濾出圖片的數(shù)據(jù)
				for (HSSFShape hssfShape : list) {
					HSSFPicture hSSFPicture = (HSSFPicture) hssfShape;
					HSSFClientAnchor hSSFClientAnchor = (HSSFClientAnchor) hSSFPicture.getAnchor();
					PictureData pictureData = hSSFPicture.getPictureData();
					String point = hSSFClientAnchor.getRow1() + "," + hSSFClientAnchor.getCol1();
					// 如果存在這個(gè)坐標(biāo)KEY表示相同單元格中的圖片,直接集合添加該圖片,不存在該坐標(biāo)key直接創(chuàng)建添加
					if (picMap.containsKey(point)) {
						picMap.get(point).add(pictureData);
					} else {
						List<PictureData> arrayList = new ArrayList<PictureData>();
						arrayList.add(pictureData);
						picMap.put(point, arrayList);
					}
				}
			}

			for (int i = 1; i <= lastRowNum; i++) {
				HSSFRow row = sheet.getRow(i);
				String name = row.getCell(0) == null ? "" : row.getCell(0).getStringCellValue();
				String sex = row.getCell(1) == null ? "" : row.getCell(1).getStringCellValue();

				// 獲取圖片數(shù)據(jù)
				List<PictureData> pictureDataList = picMap.get(i + "," + 2);
				String paths = "";
				if (pictureDataList != null)
					for (PictureData pictureData : pictureDataList) {
						String suggestFileExtension = pictureData.suggestFileExtension();// 圖片格式
						String path = "D://" + i + "-2--" + pictureDataList.indexOf(pictureData) + "."
								+ suggestFileExtension;// 存儲路徑
						paths = paths + path;
						FileOutputStream out = new FileOutputStream(path);// 流寫入
						out.write(pictureData.getData());
						out.close();
					}

				System.out.println("名稱:" + name + ",    性別:" + sex + ",    圖片存儲路徑:" + paths);

			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

到了這里,關(guān)于JAVA POI的excel中包含圖片進(jìn)行讀取保存,單張圖片,多張圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • springboot后端存儲富文本內(nèi)容(含圖片內(nèi)容)

    springboot后端存儲富文本內(nèi)容(含圖片內(nèi)容)

    springboot:后端快速應(yīng)用開發(fā)框架。 tinymce:簡單的富文本編輯器。 base64:Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的方法。編碼規(guī)則:把3個(gè)字節(jié)變成4個(gè)字節(jié);每76個(gè)字符加一個(gè)換行符;最后的結(jié)束符也要處理

    2024年02月02日
    瀏覽(27)
  • C# 操作 Word 全域查找且替換(含圖片對象)

    C# 操作 Word 全域查找且替換(含圖片對象)

    目錄 關(guān)于全域查找且替換 Word應(yīng)用樣本 SqlServer數(shù)據(jù)表部分設(shè)計(jì)樣本 范例運(yùn)行環(huán)境 配置Office DCOM 設(shè)計(jì)實(shí)現(xiàn) 組件庫引入 實(shí)現(xiàn)原理 查找且替換的核心代碼 窗格內(nèi)容 頁眉內(nèi)容 頁腳內(nèi)容 形狀內(nèi)容 小結(jié) C#全域操作 Word 查找且替換主要包括如下四個(gè)對象: 序號 對象 說明 1 Word.Appic

    2024年04月10日
    瀏覽(25)
  • 【Python小技巧】使用Gradio輕松部署AI算法結(jié)果可視化Web 應(yīng)用(含圖片轉(zhuǎn)換、驗(yàn)證碼識別完整源碼)

    【Python小技巧】使用Gradio輕松部署AI算法結(jié)果可視化Web 應(yīng)用(含圖片轉(zhuǎn)換、驗(yàn)證碼識別完整源碼)

    隨著人工智能的不斷發(fā)展,各種智能算法越來越普遍,但是這些算法結(jié)果通常顯示在cmd命令窗口里。有沒有一種方法可以動(dòng)態(tài)展示,更具需要計(jì)算后動(dòng)態(tài)展現(xiàn)? 答案是有! 下面讓我了解一下Gradio庫,只需寥寥幾行代碼就可以展現(xiàn)出chatGPT的對話窗口,是不是很nice! Gradio是一

    2024年02月15日
    瀏覽(35)
  • 【微信小程序】使用weui組件庫來實(shí)現(xiàn)彈出一個(gè)確認(rèn)的彈窗popup,其中包含圖片和名稱

    在微信小程序中,你可以使用weui組件庫來實(shí)現(xiàn)彈出一個(gè)確認(rèn)的popup,并在其中包含圖片和名稱。以下是一個(gè)示例代碼: 在wxml文件中,添加一個(gè)按鈕來觸發(fā)彈出確認(rèn)popup: 在wxss文件中,定義確認(rèn)popup的樣式: 在js文件中,編寫相應(yīng)的邏輯來顯示和隱藏確認(rèn)popup,并傳遞圖片和名

    2024年02月17日
    瀏覽(96)
  • Java使用POI讀取Excel名稱管理器

    Java使用POI讀取Excel名稱管理器

    本文主要介紹如何使用poi讀取到Excel的名稱管理器中的內(nèi)容。并且定位到單元格。 在企業(yè)的開發(fā)中可能需要通過名稱管理器定位到某個(gè)單元格,然后在單元格上生成簽名。 Java:Jdk1.8 poi:5.2.3 maven依賴(pom.xml): poi的WorkBook有個(gè)getNames方法可以讀到名稱。 Excel的名稱在下圖中新建

    2024年02月14日
    瀏覽(30)
  • java通過poi讀取excel中的日期類型

    Java 讀取Excel表格日期類型數(shù)據(jù)的時(shí)候,讀出來的是這樣的 12-十月-2020,而Excel中輸入的是 2020/10/12 或 2020-10-12 poi處理excel時(shí),當(dāng)excel沒有明確指明是哪個(gè)類型的數(shù)據(jù)時(shí),poi很可能處理單元格的日期數(shù)據(jù)時(shí)就有可能是一串?dāng)?shù)字,而使用java程序基本無法轉(zhuǎn)換。 Excel數(shù)據(jù)處理: Exc

    2024年02月15日
    瀏覽(27)
  • Java poi之Excel文本圖片內(nèi)容提取

    Java poi之Excel文本圖片內(nèi)容提取

    應(yīng)公司需求,需實(shí)現(xiàn)以下功能 Excel文本內(nèi)容的替換; Excel文本內(nèi)容的提取; Excel中圖片的提取存放 此文章將使用Apache POI實(shí)現(xiàn)Excel文件中文本內(nèi)容及圖片的提??; Apache POI 是基于 Office Open XML 標(biāo)準(zhǔn)(OOXML)和 Microsoft 的 OLE 2 復(fù)合文檔格式(OLE2)處理各種文件格式的開源項(xiàng)目。

    2024年02月05日
    瀏覽(24)
  • Java 通過POI快速導(dǎo)入帶圖片的excel并且圖片不會丟失

    Java 通過POI快速導(dǎo)入帶圖片的excel并且圖片不會丟失

    導(dǎo)入帶圖片的excel,這里也是研究了很久,在之前的博客中也有說明過,在項(xiàng)目使用過程中,發(fā)現(xiàn)很多時(shí)候 導(dǎo)入響應(yīng)很慢 ,而且每次導(dǎo)入 圖片都會丟失 幾張,所以又花了點(diǎn)時(shí)間研究修改了下,具體如下: 這邊在導(dǎo)入時(shí),通過自定義注解,將excel讀取到的數(shù)據(jù)轉(zhuǎn)換到需要的實(shí)

    2024年02月01日
    瀏覽(25)
  • Java使用POI解析帶圖片的excel,簡潔好用

    Java使用POI解析帶圖片的excel,簡潔好用

    ? ? ? ? 這天遇到這個(gè)這樣的需求,需要導(dǎo)入表格中的數(shù)據(jù),還得支持帶圖片;這應(yīng)該難不倒咱阿里的EasyExcel,打開官網(wǎng)文檔一看哦豁,明確表示暫時(shí)不支持解析帶圖片的Excel...... 好了,這下只能看POI了,然后想起來項(xiàng)目里引入的HuTools工具類,它應(yīng)該封裝好了吧;于是決定用

    2024年02月11日
    瀏覽(29)
  • java poi 獲取excel中的圖片(包含wps中嵌入單元格圖片)

    java poi 獲取excel中的圖片(包含wps中嵌入單元格圖片)

    項(xiàng)目中有excel導(dǎo)入功能,并且需要導(dǎo)入excel中的圖片;模板如圖: 已知office中插入的圖片為浮動(dòng)形式;如圖: wps中可以插入浮動(dòng)圖片,也可以插入嵌入單元格圖片;如圖: 并且在wps嵌入單元格形式的圖片可以看到使用的是公式;如圖: ?問題來了,如何獲取圖片? 并且將圖片與單元格進(jìn)行對

    2024年02月07日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包