30/8/58

การใส่ค่าและกำหนดรูปแบบ Data ให้กับ Cell Excel ใน Java Apache POI

การใส่ค่าและกำหนดรูปแบบ Data ให้กับ Cell Excel ใน Java Apache POI

จากบทที่แล้วเราได้ทำการ สร้าง Cell ใน Excel โดยใช้ Java POI กันไปแล้ว แล้วก็เซตค่าให้กับแต่ละ Cell แล้วแต่ว่าถ้าสังเกตุดูจะเห็นว่าเวลาเราใส่ค่าเวลา หรือ Date ให้กับ Excel แล้วจะเป็นตัวเลขที่เดายาก และอ่านยาก ดังนั้น บทนี้เรามาดูวิธีง่าย ๆ ในการกำนหนดรูปแบบ และ format ให้กับ Date ใน Java Apache POI กันครับ มาดูตัวอย่างโค้ดตามด้านล่างกัน

package info.doesystem.tutorial.poi;

import java.io.FileOutputStream;
import java.util.Calendar;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelDateValueFormat {
	public static void main(String[] args) {
		try (
			Workbook wb = new XSSFWorkbook();
			FileOutputStream fileOut = new FileOutputStream("D://Blog/Temp File/workbook.xlsx")
		){
			// create sheet
			Sheet sheet = wb.createSheet("new sheet");
			
			// create row
			Row row = sheet.createRow(0);
			
			// set Date value to cell
			row.createCell(0).setCellValue(Calendar.getInstance());
			row.createCell(1).setCellValue(Calendar.getInstance().getTime());
			
			// set Date value Format
			CreationHelper createHelper = wb.getCreationHelper();
			CellStyle cellStyle = wb.createCellStyle();
		    cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
		    
		    Cell cell2 = row.createCell(2);
		    cell2.setCellValue(Calendar.getInstance());
		    cell2.setCellStyle(cellStyle);
		    
		    Cell cell3 = row.createCell(3);
		    cell3.setCellValue(Calendar.getInstance().getTime());
		    cell3.setCellStyle(cellStyle);
		    
			wb.write(fileOut);

			System.out.println("SUCCESS");
		} catch (Exception ex) {
			System.out.println("Exception " + ex);
		}
	}
}

ผลลัพธ์ที่ได้จากการรันโค้ดข้างบนจะได้ประมาณนี้


จากผลลัพธ์เมื่อเทียบกับโค้ดจะเห็นว่าถ้าเราใส่ Date หรือ Calendar เข้าไปแบบไม่เซต format จะทำให้ค่าที่ได้เป็นตัวเลขที่อ่านยาก ดังนั้นการใส่ format สำหรับ Date ใน Excel จึงเป็นสิ่งที่ใช้กันหลาย ๆ ครั้ง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น