java读取excel里内嵌图片
时间: 2023-07-07 22:09:00 浏览: 97
读取 Excel 中的内嵌图片,需要用到 Apache POI 库。以下是读取内嵌图片的示例代码:
```java
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFPictureData;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.PictureData;
import org.apache.poi.ss.usermodel.Workbook;
public class ReadExcelImage {
public static void main(String[] args) throws IOException {
String excelFilePath = "path/to/excel/file.xls";
Workbook workbook = new HSSFWorkbook(new FileInputStream(excelFilePath));
Iterator<Sheet> sheetIterator = workbook.iterator();
while (sheetIterator.hasNext()) {
Sheet sheet = sheetIterator.next();
for (Row row : sheet) {
for (Cell cell : row) {
if (cell.getCellType() == CellType.PICTURE) {
byte[] pictureBytes = cell.getCellValue();
String pictureName = cell.getStringCellValue();
// 写入文件
FileOutputStream fileOutputStream = new FileOutputStream(pictureName);
fileOutputStream.write(pictureBytes);
fileOutputStream.close();
}
}
}
}
workbook.close();
}
}
```
这段代码会遍历 Excel 中的每个单元格,如果单元格中包含图片,就将图片数据写入文件中。需要注意的是,这里只处理了 HSSF 格式的 Excel 文件,如果是 XSSF 格式的文件,需要使用 XSSFWorkbook 类而不是 HSSFWorkbook 类。此外,如果要读取图片的元数据,可以使用 HSSFPictureData 类或者 XSSFPictureData 类。
阅读全文