Java批量将图片转换成base64格式 并保存到Excel中
时间: 2023-10-03 12:10:22 浏览: 51
以下是Java代码示例,可以将一个文件夹中所有的图片转换成base64格式,并将结果保存到Excel中:
```java
import java.io.*;
import java.util.Base64;
import org.apache.poi.ss.usermodel.*;
public class ImageToBase64Excel {
public static void main(String[] args) {
String folderPath = "C:/images"; // 图片所在文件夹路径
String excelPath = "C:/images.xlsx"; // 保存Excel文件路径
// 创建Excel工作簿
Workbook workbook = WorkbookFactory.create(new File(excelPath));
Sheet sheet = workbook.createSheet("Images");
int rowNum = 0;
// 遍历文件夹中的所有图片文件
File folder = new File(folderPath);
File[] files = folder.listFiles();
for (File file : files) {
if (file.isFile() && file.getName().toLowerCase().endsWith(".jpg")) {
// 读取图片文件并转换成base64格式
byte[] imageBytes = readBytesFromFile(file);
String base64String = Base64.getEncoder().encodeToString(imageBytes);
// 保存base64格式到Excel中
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(file.getName());
row.createCell(1).setCellValue(base64String);
}
}
// 保存Excel文件
try (FileOutputStream outputStream = new FileOutputStream(excelPath)) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
// 读取文件字节流
private static byte[] readBytesFromFile(File file) {
try (FileInputStream inputStream = new FileInputStream(file)) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
return outputStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
```
该代码使用了Apache POI库来创建和操作Excel文件。在遍历文件夹中的所有图片文件时,只处理以“.jpg”为后缀的文件。对于每个图片文件,先读取其字节流,再将其转换成base64格式。最后,将文件名和base64格式保存到Excel文件中。