รูปภาพทำให้คุณเข้าใจเรื่องราวใด ๆ ที่ง่าย เป็นคำพูดที่โด่งดังว่าภาพมีค่าหนึ่งพันคำ Microsoft Excel ช่วยให้คุณแทรกรูปภาพในแผ่นงานของคุณในเซลล์และบันทึกข้อเท็จจริงกับสิ่งเหล่านี้ ในบทความนี้เราจะแสดงวิธีใช้ Apache Poi API เพื่อแทรกภาพใน Excel ไฟล์ XLSX โดยใช้ Java

apache poi

Apache Poi เป็นไลบรารี Java สำหรับการทำงานกับรูปแบบไฟล์ Microsoft Office เช่น XLS, XLSX, DOC, DOCX, PPT, PPTX และอื่น ๆ ไฟล์เหล่านี้

การติดตั้ง Apache poi api

ก่อนที่เราจะเริ่มต้นด้วยการเขียนโค้ดสำหรับการทำงานกับเอกสาร Excel ในแอปพลิเคชัน Java ของเราเราจำเป็นต้องติดตั้ง Apache Poi ในระบบของเรา เพื่อจุดประสงค์นี้เราควรมีการพึ่งพา POI ในการตั้งค่าโครงการของเรา การพึ่งพาต่อไปนี้จำเป็นต้องพัฒนาแอปพลิเคชัน Apache Poi

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.1</version>
</dependency>

คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ การติดตั้ง POI API สำหรับการทำงานกับไฟล์ Excel เมื่อเพิ่มลงในโครงการของคุณไฟล์ pom.xml จะมีลักษณะดังนี้

จะแทรกภาพในเซลล์ Excel โดยใช้ Java ได้อย่างไร?

คุณสามารถใช้ Apache Poi Library เพื่อ เปิดสมุดงาน Excel ใน Java และแทรกภาพในเซลล์ Excel โดยใช้ขั้นตอนต่อไปนี้

ขั้นตอนในการเพิ่มรูปภาพใน XLSX โดยใช้ Java Poi

  1. สร้างอินสแตนซ์ของคลาส XSSFWORKBOOK
  2. สร้างแถวและเพิ่มเซลล์ในแถว
  3. โหลดภาพเป็นวัตถุอินพุตสตรีม
  4. แปลงสตรีมอินพุตเป็นอาร์เรย์ไบต์
  5. เพิ่มรูปภาพลงในเวิร์กบุ๊กจากอาร์เรย์ไบต์โดยใช้ AddPicture วิธีการของอินสแตนซ์เวิร์กบุ๊ก

เพิ่มอิมเมจใน Excel โดยใช้ตัวอย่าง Java Poi

ลองดูที่รหัสตัวอย่างที่สมบูรณ์เพื่อเพิ่มภาพในเซลล์ Excel โดยใช้ไลบรารี Java Poi

//create a new workbook
XSSFWorkbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();
//add picture data to this workbook.
FileInputStream is = new FileInputStream("FileFormat.png");
byte[] bytes = IOUtils.toByteArray(is);
int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
is.close();
XSSFCreationHelper helper = wb.getCreationHelper();
//create sheet
XSSFSheet sheet = wb.createSheet();
// Create the drawing patriarch.  This is the top level container for all shapes.
Drawing drawing = sheet.createDrawingPatriarch();
//add a picture shape
XSSFClientAnchor anchor = helper.createClientAnchor();
//set top-left corner of the picture,
//subsequent call of Picture#resize() will operate relative to it
anchor.setCol1(3);
anchor.setRow1(2);
Picture pict = drawing.createPicture(anchor, pictureIdx);
//auto-size picture relative to its top-left corner
pict.resize();
//save workbook
String file = "picture.xls";
if(wb instanceof XSSFWorkbook) file += "x";
try (FileOutputStream fileOut = new FileOutputStream(file)) {
    wb.write(fileOut);
    wb.close();
}
catch(Exception ex)
{
	System.out.println(ex.getMessage());
}

บทสรุป

ในบทความนี้เราได้แสดงวิธีเพิ่มภาพลงในสมุดงาน Excel XSLX โดยใช้ Apache Poi Library สำหรับ Java เราจะเพิ่มตัวอย่าง Apache Poi เพิ่มเติมสำหรับการทำงานกับไฟล์ Excel โดยใช้ Apache Poi API ดังนั้นคอยติดตาม