หากคุณเป็นนักพัฒนาแอปพลิเคชัน Java ที่ทำงานร่วมกับ Excel จากภายในแอปพลิเคชัน Java ของคุณคุณจะสนใจที่จะให้ฟังก์ชั่นการจัดการข้อมูล Excel ในแอปพลิเคชันของคุณ Excel ช่วยให้คุณจัดรูปแบบการจัดรูปแบบเซลล์ตั้งค่าประเภทของเซลล์เป็นชนิดข้อมูลที่แตกต่างกันเติมเซลล์ด้วยสีที่แตกต่างกันและอื่น ๆ Apache Poi ทำหน้าที่เป็นสะพานเชื่อมระหว่าง Java และ Excel นำเสนอเครื่องมือในการจัดการ Excel ไฟล์ XLSX โดยทางโปรแกรม ในซีรีส์บล็อกนี้เราจะเปิดตัวศิลปะการจัดการเซลล์ Excel โดยใช้ Apache Poi ใน Java มาดำน้ำและค้นพบการทำงานร่วมกันของรหัสและสเปรดชีต!
สารบัญ
ตลอดทั้งบล็อกเราจะผ่านตัวอย่างรหัสและคำอธิบายเดียวกันสำหรับสิ่งต่อไปนี้:
- การสร้างเซลล์ในไฟล์ Excel
- สร้างเซลล์วันที่ใน Excel
- การทำงานกับเซลล์ประเภทต่าง ๆ
- การตั้งค่าลักษณะของเซลล์
การทำงานกับเซลล์ในไฟล์ excel ใน java
การสร้างเซลล์ในไฟล์ excel
//Create Cells
XSSFWorkbook wb = new XSSFWorkbook();
XSSFCreationHelper createHelper = wb.getCreationHelper();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a value in it.
Cell cell = row.createCell(0);
cell.setCellValue(1);
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(createHelper.createRichTextString("This is a string"));
row.createCell(3).setCellValue(true);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
ตัวอย่างโค้ด Java ข้างต้นแสดงให้เห็นถึงการใช้ Apache Poi API เพื่อทำงานกับเซลล์ในสมุดงาน Excel รหัสสร้างสมุดงาน Excel ใหม่ (\ **xssfworkbook** \
) เริ่มต้นแผ่นงานภายในสมุดงานแล้วเติมเซลล์ด้วยข้อมูลประเภทต่างๆ ก่อนอื่นรหัสสร้างแผ่นใหม่ชื่อ“ แผ่นใหม่ ” จากนั้นจะสร้างแถวที่ดัชนี 0 บนแผ่นงานและดำเนินการเพื่อเติมเต็มเซลล์ภายในแถวนั้น เซลล์แรก (ดัชนี 0) ได้รับการกำหนดค่าจำนวนเต็ม 1 โดยใช้เมธอด \ **setCellValue** \
ในทางตรงกันข้ามเซลล์ที่สอง (ดัชนี 1) ถูกตั้งค่าเป็นค่าทศนิยมที่ 1.2 โดยตรงภายใน \ **createCell** \
เมธอด เซลล์ที่สาม (ดัชนี 2) มีค่าสตริง“ นี่คือสตริง” ที่สร้างขึ้นโดยใช้เมธอด \ **createrichtextString** \
จากอินสแตนซ์ \ **xssfcreationHelper** \
สุดท้ายเซลล์ที่สี่ (ดัชนี 3) จะถูกเติมด้วยค่าบูลีน“ จริง” หลังจากตั้งค่าค่าเซลล์แล้วรหัสจะเขียนสมุดงานผลลัพธ์ไปยังไฟล์ excel ชื่อ“ workbook.xlsx” โดยใช้ \ **fileoutputStream** \
การสร้างเซลล์ประเภทวันที่
XSSFWorkbook wb = new XSSFWorkbook();
//Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a date value in it. The first cell is not styled
// as a date.
Cell cell = row.createCell(0);
cell.setCellValue(new Date());
// we style the second cell as a date (and time). It is important to
// create a new cell style from the workbook otherwise you can end up
// modifying the built in style and effecting not only this cell but other cells.
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
cell = row.createCell(1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);
//you can also set date as java.util.Calendar
cell = row.createCell(2);
cell.setCellValue(Calendar.getInstance());
cell.setCellStyle(cellStyle);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
ตัวอย่างโค้ด Java นี้แสดงการใช้ Apache Poi API สำหรับการทำงานกับเซลล์ประเภทวันที่ในสมุดงาน Excel รหัสเริ่มต้นด้วยการสร้างสมุดงาน Excel ใหม่ (\ **xssfworkbook** \
)
เซลล์แรก (ดัชนี 0) มีวัตถุประสงค์เพื่อเก็บค่าวันที่ A \ **วันที่** \
วัตถุที่แสดงถึงวันที่และเวลาปัจจุบันถูกตั้งค่าเป็นค่าของเซลล์โดยใช้วิธี \ **setCellValue** \
เมธอด เซลล์นี้ไม่ได้มีสไตล์อย่างชัดเจนเป็นวันที่
สำหรับเซลล์ที่สอง (ดัชนี 1) รูปแบบเซลล์ใหม่ (\ CellStyle \
) ถูกสร้างขึ้นโดยใช้วิธี \ createCellstyle \
วิธีการของสมุดงาน รูปแบบนี้จะถูกกำหนดค่าให้มีรูปแบบวันที่และเวลาที่เฉพาะเจาะจงโดยใช้เมธอด \ setDataFormat \
\ createDataFormat (). getFormat (“ M/D/YY H: MM”) \
กระบวนการสร้างรูปแบบวันที่ที่กำหนดเองด้วยรูปแบบรูปแบบของ“ M/D/YY H: MM” เซลล์ที่สองได้รับการกำหนดค่าวันที่และเวลาปัจจุบันและรูปแบบเซลล์ที่สร้างขึ้นใหม่จะถูกนำไปใช้กับมันโดยใช้เมธอด \ setcellstyle \
เซลล์ที่สาม (ดัชนี 2) แสดงวิธีทางเลือกในการเติมเซลล์ประเภทวันที่โดยใช้ \ java.util.calendar \
คล้ายกับเซลล์ที่สองรูปแบบเซลล์ที่กำหนดเองจะถูกนำไปใช้กับเซลล์นี้เช่นกัน
การทำงานกับเซลล์ประเภทต่าง ๆ
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(2);
row.createCell(0).setCellValue(1.1);
row.createCell(1).setCellValue(new Date());
row.createCell(2).setCellValue(Calendar.getInstance());
row.createCell(3).setCellValue("a string");
row.createCell(4).setCellValue(true);
row.createCell(5).setCellType(CellType.ERROR); // Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
ในตัวอย่างรหัสนี้รูปแบบเซลล์ที่แตกต่างกันจะถูกนำไปใช้กับเซลล์ในไฟล์ excel โดยใช้ Apache Poi API ตามที่อธิบายไว้ในขั้นตอนต่อไปนี้
- แถวถูกสร้างขึ้นที่ดัชนี 2 บนแผ่นงานโดยใช้ \
**createrow** (2) \
เซลล์จะถูกเติมภายในแถวนี้พร้อมข้อมูลต่อไปนี้ - เซลล์แรก (ดัชนี 0) ได้รับการกำหนดค่าทศนิยม 1.1 โดยใช้เมธอด \
**setCellValue** \
- ในเซลล์ที่สอง (ดัชนี 1) วันที่และเวลาปัจจุบันจะถูกแทรกโดยใช้วัตถุ \
วันที่ \
ผ่านวิธี \**setCellValue** \
เมธอด - เซลล์ที่สาม (ดัชนี 2) มีวันที่และเวลาจากอินสแตนซ์ \
ปฏิทิน \
ตั้งค่าโดยใช้วิธี \**setCellValue** \
เมธอด - เซลล์ที่สี่ (ดัชนี 3) ถือข้อความ“ สตริง”
- เซลล์ที่ห้า (ดัชนี 4) ถูกกำหนดไว้สำหรับค่าบูลีน“ จริง”
- การเลื่อนไปข้างหน้าประเภทเซลล์เฉพาะถูกกำหนดให้กับเซลล์ที่หก (ดัชนี 5) โดยการเรียกใช้เมธอด \
**setCellType** \
เซลล์นี้ได้รับการกำหนดค่าเป็นเซลล์ข้อผิดพลาดโดยใช้ \**celltype.error** \
การแจงนับซึ่งบ่งชี้ว่าจะแสดงค่าข้อผิดพลาด ในที่สุดสมุดงานที่ได้รับการแก้ไขจะถูกเขียนไปยังไฟล์ชื่อ“ workbook.xlsx” โดยใช้ \**fileoutputStream** \
โดยสรุปตัวอย่างรหัสนี้แสดงให้เห็นถึงวิธีการสร้างสมุดงาน Excel ใช้รูปแบบเซลล์ที่แตกต่างกันเพื่อรองรับชนิดข้อมูลที่หลากหลายและในที่สุดบันทึกสมุดงานที่แก้ไขไว้ในไฟล์ ภาพประกอบที่ใช้งานได้จริงนี้แสดงให้เห็นถึงความสามารถของไลบรารี Apache Poi สำหรับการทำงานกับไฟล์ Excel ใน Java
การตั้งค่าลักษณะของเซลล์
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(1);
// Aqua background
CellStyle style = wb.createCellStyle();
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex());
style.setFillPattern(FillPatternType.BIG_SPOTS);
Cell cell = row.createCell(1);
cell.setCellValue("X");
cell.setCellStyle(style);
// Orange "foreground", foreground being the fill foreground not the font color.
style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.ORANGE.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell = row.createCell(2);
cell.setCellValue("X");
cell.setCellStyle(style);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
wb.write(fileOut);
}
wb.close();
ข้อมูลตัวอย่างรหัสนี้แสดงให้เห็นถึงวิธีการจัดการการปรากฏตัวของเซลล์ในไฟล์ excel โดยใช้ไลบรารี Apache Poi ใน Java นี่คือความสำเร็จโดยใช้ขั้นตอนต่อไปนี้
- แถวถูกสร้างขึ้นที่ดัชนี 1 บนแผ่นงานโดยใช้ \
createrow (1) \
การเปลี่ยนแปลงต่อไปนี้เกิดขึ้นกับเซลล์ภายในแถวนี้ - สำหรับเซลล์แรก (ดัชนี 1) รูปแบบเซลล์ที่กำหนดเองถูกสร้างขึ้นโดยใช้ \
wb.createCellstyle () \
สไตล์นี้ได้รับการกำหนดค่าด้วยสีพื้นหลังน้ำโดยใช้ \setFillbackgroundColor \
และ \indexedColors.aqua.getIndex () \
รูปแบบสำหรับพื้นหลังถูกตั้งค่าเป็น“ จุดใหญ่” โดยใช้ \setFillPattern (fillpatterntype.big_spots) \
เซลล์ถูกสร้างขึ้นในแถวนี้ที่ดัชนี 1 และเต็มไปด้วยค่า“ x” สไตล์ที่สร้างขึ้นก่อนหน้านี้ใช้กับเซลล์นี้โดยใช้ \setcellstyle \
- สำหรับเซลล์ที่สอง (ดัชนี 2) รูปแบบเซลล์ใหม่ถูกสร้างขึ้น รูปแบบนี้ได้รับการออกแบบด้วยสีส้มเบื้องหน้าโดยใช้ \
setfillforegroundColor \
และ \indexedColors.orange.getIndex () \
รูปแบบการเติมถูกตั้งค่าเป็น“ เบื้องหน้าที่เป็นของแข็ง” โดยใช้ \setFillpattern (Fillpatterntype.solid_foreground) \
เซลล์อื่นถูกสร้างขึ้นที่ดัชนี 2 ในแถวเดียวกันและเติมด้วยค่า“ x” สไตล์ที่สร้างขึ้นใหม่จะถูกกำหนดให้กับเซลล์นี้โดยใช้ \setcellstyle \
หลังจากกำหนดค่าการปรากฏตัวของเซลล์แล้วสมุดงานที่แก้ไขจะถูกเขียนไปยังไฟล์ชื่อ“ workbook.xlsx” โดยใช้ \fileOutputStream \
โดยสรุปตัวอย่างรหัสนี้แสดงวิธีการใช้ไลบรารี Apache Poi เพื่อจัดการการปรากฏตัวของเซลล์ในไฟล์ Excel เทคนิคการสาธิตเกี่ยวข้องกับการสร้างรูปแบบเซลล์ที่กำหนดเองเพื่อควบคุมพื้นหลังและสีเบื้องหน้ารวมถึงรูปแบบการเติมให้ความยืดหยุ่นในการปรับแต่งสเปรดชีต Excel ด้วยสายตาโดยใช้ Java
บทสรุป
ในตัวอย่าง Java ข้างต้นทั้งหมดสำหรับ Apache Poi Library เราได้สาธิตวิธีการทำงานกับเนื้อหาไฟล์ Excel จากภายในแอปพลิเคชัน Java ของคุณ ตัวอย่างโค้ดแสดงวิธีการสร้างเซลล์ในไฟล์ excel ตั้งค่าลักษณะที่ปรากฏของเหล่านี้ตั้งค่าสไตล์เซลล์เป็นประเภทข้อมูลที่แตกต่างกันเช่นสตริงตัวเลขทศนิยม ฯลฯ และวิธีการตั้งค่าประเภทเซลล์ถึงวันที่ เราจะเพิ่มตัวอย่างเพิ่มเติมสำหรับการทำงานกับไฟล์ Excel โดยใช้ Apache Poi สำหรับ Java ดังนั้นคอยติดตาม