本文实例为大家分享了java用Excel将图片画出来的具体代码,供大家参考,具体内容如下
能够将任何图片在excel上利用单元格背景完整的描绘出来。
像网络上出现的用excel画出超级玛丽等等,各种图片都能在excel上“画”出来。
图片我没有经过特殊处理,所以转换的图片不能太大,有多大的图片就要有多少的单元格。如640 * 480就有307200的单元格。
如要转换的图片:
转换后在excel中的效果:
没多大意义练练手:
进口java.awt.Color; 进口java.awt.image.BufferedImage; 进口java.io.File; 进口java.io.IOException; 进口java.util.Locale; 进口javax.swing.ImageIcon; 进口jxl.Workbook; 进口jxl.WorkbookSettings; 进口jxl.format.Colour; 进口jxl.read.biff.BiffException; 进口jxl.write.Label; 进口jxl.write.WritableCellFormat; 进口jxl.write.WritableSheet; 进口jxl.write.WritableWorkbook; 公共类辅助{ 私人BufferedImage getBufferedImage(字符串filepath) { ImageIcon imgicon=new ImageIcon (filepath); BufferedImage BufferedImage=new BufferedImage (imgicon.getIconWidth (), imgicon.getIconHeight (), BufferedImage.TYPE_INT_RGB); bufferedImage.createGraphics () .drawImage (imgicon.getImage (), 0, 0, null); 返回bufferedImage; } 私人色彩getNearestColour(颜色awtColor) { 颜色颜色=零; 颜色=[]颜色Colour.getAllColours (); 如果((颜色!=null),,(颜色。长度比;0)){ 颜色crtColor=零; int [] rgb=零; int diff=0; int minDiff=999; for (int i=0;我& lt;colors.length;我+ +){ crtColor=颜色(我); rgb=new int [3]; .getRed rgb [0]=crtColor.getDefaultRGB () (); .getGreen rgb [1]=crtColor.getDefaultRGB () (); .getBlue rgb [2]=crtColor.getDefaultRGB () (); diff=数学。abs (rgb [0] - awtColor.getRed ()) +数学。abs (rgb [1] - awtColor.getGreen ()) +数学。abs (rgb [2] - awtColor.getBlue ()); 如果(diff & lt;minDiff) { minDiff=diff; 颜色=crtColor; } } } 如果(颜色==null) 颜色=Colour.BLACK; 返回颜色; } convertFromImage公共空间exec(字符串,字符串createxls)抛出异常 { WorkbookSettings ws=new WorkbookSettings (); ws。setLocale(新语言环境(“en”、“en”)); WritableWorkbook工作簿=工作簿。createWorkbook(新文件(createxls) ws); WritableSheet s2=工作簿。createSheet("图片",0); BufferedImage buffimage=getBufferedImage (convertFromImage); int宽度=buffimage.getWidth (); int嗨!=buffimage.getHeight (); for (int i=0; i<宽度;我+ +) { for (int h=0; h<嗨!;h + +) { WritableCellFormat greyBackground=new WritableCellFormat (); c=新颜色(buffimage。getRGB(我、h)); greyBackground。setBackground (getNearestColour (c)); 标签lr=新标签(h,我”“greyBackground); s2.addCell (lr); } }//写入Excel对象 workbook.write (); workbook.close (); }/* * * @param arg游戏 * @throws IOException * @throws BiffException */公共静态void main (String [] args){抛出异常 助手辅助=new助手(); System.out.println(“输入的图片:“+ args [0]); System.out.println(“输出的excel:“+ args [1]); System.out.println(“转换开始”);//转换执行的方法参数参数[0]输入的图片路径参数[1]输出的excel路径//帮手。exec (“mslogo.jpg”、“1. xls”); helper.exec (args [0], arg游戏[1]); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。