{"rsdb":{"rid":"388194","subhead":"","postdate":"0","aid":"269459","fid":"76","uid":"1","topic":"1","content":"
\n

\u9700\u6c42\u80cc\u666f\uff1a<\/p> \n

\u3000\u3000\u8981\u6c42\u5bfc\u51fa\u7684Excel\u6709\u6c34\u5370\uff0c\u4e14\u6c34\u5370\u4e0d\u8981\u662f\u53ef\u70b9\u51fb\u7684\u56fe\u7247\u5f71\u54cd\u6b63\u5e38\u64cd\u4f5c\u3002<\/p> \n

\u5f00\u53d1\u73af\u5883\uff1a<\/p> \n

\u3000\u3000JDK 1.8<\/p> \n

\u3000\u3000SpringBoot v2.2.5.RELEASE<\/p> \n

\u5bfc\u5165\u4f9d\u8d56\uff1a<\/p> \n

\n
 1<\/span> <!--<\/span> poi \u76f8\u5173<\/span>--><\/span>\n 2<\/span>         <<\/span>dependency<\/span>><\/span>\n 3<\/span>             <<\/span>groupId<\/span>><\/span>org.apache.poi<\/<\/span>groupId<\/span>><\/span>\n 4<\/span>             <<\/span>artifactId<\/span>><\/span>poi<\/<\/span>artifactId<\/span>><\/span>\n 5<\/span>             <<\/span>version<\/span>><\/span>3.8<\/<\/span>version<\/span>><\/span>\n 6<\/span>         <\/<\/span>dependency<\/span>><\/span>\n 7<\/span>         <<\/span>dependency<\/span>><\/span>\n 8<\/span>             <<\/span>groupId<\/span>><\/span>org.apache.poi<\/<\/span>groupId<\/span>><\/span>\n 9<\/span>             <<\/span>artifactId<\/span>><\/span>poi-ooxml<\/<\/span>artifactId<\/span>><\/span>\n10<\/span>             <<\/span>version<\/span>><\/span>3.8<\/<\/span>version<\/span>><\/span>\n11<\/span>         <\/<\/span>dependency<\/span>><\/span>\n12<\/span>         <<\/span>dependency<\/span>><\/span>\n13<\/span>             <<\/span>groupId<\/span>><\/span>org.apache.poi<\/<\/span>groupId<\/span>><\/span>\n14<\/span>             <<\/span>artifactId<\/span>><\/span>ooxml-schemas<\/<\/span>artifactId<\/span>><\/span>\n15<\/span>             <<\/span>version<\/span>><\/span>1.0<\/<\/span>version<\/span>><\/span>\n16<\/span>         <\/<\/span>dependency<\/span>><\/span><\/pre> \n <\/div> \n 

 <\/p> \n

 <\/p> \n

demo\u6837\u4f8b\uff1a<\/p> \n

\n
private<\/span> void<\/span> makeExcelWithWaterMark(){\n    <\/span>\/\/<\/span> todo \u751f\u6210Excel\u4ee3\u7801<\/span>\n    setWaterMarkToExcel(workbook,createWatermarkImage(null<\/span>));\n    <\/span>\/\/<\/span> todo \u751f\u6210\u6587\u4ef6\u3001\u8f93\u51fa\u6d41\u4ee3\u7801<\/span>\n}<\/pre> \n <\/div> \n 

\u8bbe\u7f6e\u4e3aExcel\u8bbe\u7f6e\u6c34\u5370<\/p> \n

\n
 1<\/span> public<\/span> static<\/span> void<\/span> setWaterMarkToExcel(XSSFWorkbook workbook, BufferedImage bfi) throws<\/span> Exception {\n<\/span> 2<\/span>     ByteArrayOutputStream byteArrayOut = new<\/span> ByteArrayOutputStream();\n<\/span> 3<\/span>     ImageIO.write(bfi, "png", byteArrayOut);\n<\/span> 4<\/span>     int<\/span> pictureIdx = workbook.addPicture(byteArrayOut.toByteArray(), Workbook.PICTURE_TYPE_PNG);\n<\/span> 5<\/span>     \/\/<\/span>add relation from sheet to the picture data<\/span>\n 6<\/span>     POIXMLDocumentPart poixmlDocumentPart = workbook.getAllPictures().get(pictureIdx);\n<\/span> 7<\/span>     for<\/span> (int<\/span> i = 0; i < workbook.getNumberOfSheets(); i++) {\n<\/span> 8<\/span>         XSSFSheet xssfSheet = workbook.getSheetAt(i);\n<\/span> 9<\/span>         PackagePartName ppn = poixmlDocumentPart.getPackagePart().getPartName();\n<\/span>10<\/span>         String relType = XSSFRelation.IMAGES.getRelation();\n<\/span>11<\/span>         PackageRelationship pr = xssfSheet.getPackagePart().addRelationship(ppn, TargetMode.INTERNAL, relType, null<\/span>);\n<\/span>12<\/span>         xssfSheet.getCTWorksheet().addNewPicture().setId(pr.getId());\n<\/span>13<\/span>     }\n<\/span>14<\/span> }<\/pre> \n <\/div> \n 

\u521b\u5efa\u6c34\u5370\u65b9\u6cd5<\/p> \n

\n
 1<\/span> public<\/span> static<\/span> BufferedImage createWatermarkImage(WaterMarkContent watermark) {\n<\/span> 2<\/span>         if<\/span> (watermark == null<\/span>) {\n<\/span> 3<\/span>             watermark = new<\/span> WaterMarkContent();\n<\/span> 4<\/span>             watermark.setEnable(true<\/span>);\n<\/span> 5<\/span>             watermark.setText("\u6c34\u5370\u5185\u5bb9");\n<\/span> 6<\/span>             watermark.setColor("#C5CBCF");\n<\/span> 7<\/span>             watermark.setDateFormat("yyyy-MM-dd HH:mm");\n<\/span> 8<\/span>         }\n<\/span> 9<\/span>         String[] textArray = watermark.getText().split(",");\n<\/span>10<\/span>         Font font = new<\/span> Font("microsoft-yahei", Font.PLAIN, 20);\n<\/span>11<\/span>         Integer width = 300;\n<\/span>12<\/span>         Integer height = 100;\n<\/span>13<\/span> \n14<\/span>         BufferedImage image = new<\/span> BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);\n<\/span>15<\/span>         \/\/<\/span> \u80cc\u666f\u900f\u660e \u5f00\u59cb<\/span>\n16<\/span>         Graphics2D g = image.createGraphics();\n<\/span>17<\/span>         image = g.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);\n<\/span>18<\/span>         g.dispose();\n<\/span>19<\/span>         \/\/<\/span> \u80cc\u666f\u900f\u660e \u7ed3\u675f<\/span>\n20<\/span>         g = image.createGraphics();\n<\/span>21<\/span>         \/\/<\/span> \u8bbe\u5b9a\u753b\u7b14\u989c\u8272<\/span>\n22<\/span>         g.setColor(new<\/span> Color(Integer.parseInt(watermark.getColor().substring(1), 16)));\n<\/span>23<\/span>         \/\/<\/span> \u8bbe\u7f6e\u753b\u7b14\u5b57\u4f53<\/span>\n24<\/span>         g.setFont(font);\n<\/span>25<\/span>         \/\/<\/span> \u8bbe\u5b9a\u503e\u659c\u5ea6<\/span>\n26<\/span>         g.shear(0.1, -0.26);\n<\/span>27<\/span> \n28<\/span>         \/\/<\/span> \u8bbe\u7f6e\u5b57\u4f53\u5e73\u6ed1<\/span>\n29<\/span>         g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);\n<\/span>30<\/span> \n31<\/span>         int<\/span> y = 50;\n<\/span>32<\/span>         for<\/span> (int<\/span> i = 0; i < textArray.length; i++) {\n<\/span>33<\/span>             \/\/<\/span> \u753b\u51fa\u5b57\u7b26\u4e32<\/span>\n34<\/span>             g.drawString(textArray[i], 0, y);\n<\/span>35<\/span>             y = y + font.getSize();\n<\/span>36<\/span>         }\n<\/span>37<\/span>         \/\/<\/span> \u753b\u51fa\u5b57\u7b26\u4e32<\/span>\n38<\/span>         g.drawString("2022-10-12 11:24:00", 0, y);\n<\/span>39<\/span>         \/\/<\/span> \u91ca\u653e\u753b\u7b14<\/span>\n40<\/span>         g.dispose();\n<\/span>41<\/span>         return<\/span> image;\n<\/span>42<\/span>     }<\/pre> \n <\/div> \n 

 <\/p> \n


\n

 <\/p> \n

 <\/p> \n

\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u53ea\u9700\u8981\u6839\u636e\u9700\u6c42\u4fee\u6539\u521b\u5efa\u6c34\u5370<\/strong>\u65b9\u6cd5\u4e2d\u7b2c5\u884c\u3001\u7b2c7\u884c\u3001\u7b2c38\u884c\u4ee3\u7801setText\u3001setDateFormat\u3001g.drawString\u65b9\u6cd5\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u5373\u53ef<\/p> \n

\u82e5\u8981\u751f\u6210\u591a\u884c\u6c34\u5370\uff0c\u5728setText\u4e2d\u7528\u3010,\u3011(\u82f1\u6587\u9017\u53f7)\u8fdb\u884c\u5206\u9694\u3002\u4e5f\u53ef\u4ee5\u4fee\u6539\u7b2c9\u884c\u5206","orderid":"0","title":"\u5bfc\u51faExcel\u6dfb\u52a0\u6c34\u5370(\u4e00)","smalltitle":"","mid":"0","fname":"JAVA","special_id":"0","bak_id":"0","info":"0","hits":"35","pages":"2","comments":"0","posttime":"2023-07-23 13:45:50","list":"1690091150","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"\u5bfc\u51fa<\/A> Excel<\/A> \u52a0\u6c34\u5370<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"119.59.235.169","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"\u5bfc\u51faExcel\u6dfb\u52a0\u6c34\u5370","lastview":"1690926834","digg_num":"0","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}