使用java从excel中获取图像
我正在使用Apache POI 。 我能够从Excel中读取数据,但无法从Excel中读取图像。 如何从Excel中读取图像。
让我们有一个完整的例子,而不是迷惑。
import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.PictureData; import java.io.InputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.List; import java.util.Iterator; class ReadExcelImages { public static void main(String[] args) throws Exception{ InputStream inp = new FileInputStream("test.xls"); //InputStream inp = new FileInputStream("test.xlsx"); Workbook workbook = WorkbookFactory.create(inp); List lst = workbook.getAllPictures(); int i = 1; for (Iterator it = lst.iterator(); it.hasNext(); ) { PictureData pict = (PictureData)it.next(); String ext = pict.suggestFileExtension(); byte[] data = pict.getData(); if (ext.equals("png")){ FileOutputStream out = new FileOutputStream("pict" + i++ + ".png"); out.write(data); out.close(); } else if (ext.equals("jpeg")) { FileOutputStream out = new FileOutputStream("pict" + i++ + ".jpeg"); out.write(data); out.close(); } } } }
适用于HSSF
( *.xls
)以及XSSF
( *.xlsx
)。