您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“JAVA怎么去掉Excel中的對(duì)象”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“JAVA怎么去掉Excel中的對(duì)象”吧!
判斷是否存在對(duì)象。
先貼一下今天嘗試的代碼。代碼執(zhí)行后,文件變小了,但文件中的對(duì)象還是存在。所以毫無(wú)辦法??拥膐ffice
//JAVA導(dǎo)入Excel 報(bào)錯(cuò) java.io.IOException: Zip bomb detected! ZipSecureFile.setMinInflateRatio(-1.0d); // 創(chuàng)建XSSF的workbook XSSFWorkbook book = XSSFWorkbookFactory.createWorkbook(file.getInputStream()); // 這一行沒(méi)什么用,只是為了看里面方法和值 CTWorksheet ctWorksheet = book.getSheetAt(0).getCTWorksheet(); // 獲取畫(huà)圖管理器 XSSFDrawing drawingPatriarch = book.getSheetAt(0).getDrawingPatriarch(); // 這一行也沒(méi)什么用,因?yàn)閷?duì)象依然存在 book.getSheetAt(0).getPackagePart().clear(); // 沒(méi)什么用 CTShape ctShape = new CTShapeImpl(ctWorksheet.schemaType()); // 獲取XSSFShape列表,就是那些該死的對(duì)象。 List<XSSFShape> shapes = drawingPatriarch.getShapes(); // a、b、c、d、flag、shapeNames都沒(méi)什么用,只是為了代碼執(zhí)行時(shí),能觀察數(shù)量和對(duì)象名稱 int a = 0; int b = 0; int c = 0; int d = 0; boolean flag = false; List<String> shapeNames = new ArrayList<>(); for (XSSFShape xssfShape:shapes){ shapeNames.add(xssfShape.getShapeName()); xssfShape.setLineStyle(0); xssfShape.setLineWidth(0); // 將對(duì)象的三圍搞到0. XSSFClientAnchor anchor = (XSSFClientAnchor) xssfShape.getAnchor(); anchor.setCol1(0); anchor.setCol2(0); anchor.setDx1(0); anchor.setDx2(0); anchor.setDy1(0); anchor.setDy2(0); anchor.setRow1(0); anchor.setRow2(1); d++; } System.out.println("a:"+a); System.out.println("b:"+b); System.out.println("c:"+c); System.out.println("d:"+d); System.out.println("flag:"+flag); System.out.println("對(duì)象名稱:"+ shapeNames.get(0));
改造后
XSSFWorkbook book = XSSFWorkbookFactory.createWorkbook(file.getInputStream()); XSSFDrawing drawingPatriarch = book.getSheetAt(0).getDrawingPatriarch(); if (drawingPatriarch != null && drawingPatriarch.getShapes().size()>0){ return ApiResult.error("文件中存在隱藏對(duì)象,請(qǐng)重新整理。粘貼時(shí),只粘貼文字"); }
到此,相信大家對(duì)“JAVA怎么去掉Excel中的對(duì)象”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。