2012-03-18 54 views
15

Xin chào, tôi đang đọc tệp csv và nhận ngày tháng 01-01-2011 nhưng tôi muốn nó ở định dạng 01 tháng 1 năm 2011 khi tôi viết tệp .xlsx bằng thư viện apache poi. mã của tôi làĐịnh dạng ngày Apache poi

XSSFDataFormat df = workBook.createDataFormat(); 
cs.setDataFormat(df.getFormat("dd-MMM-yy")); 

nhưng mã không hoạt động đối với tôi. nơi tôi đang làm sai lầm.

+0

xin lỗi, nhưng cs là gì? – Leo

+0

@Leo Đó là một XSSFCellStyle – stg

Trả lời

22

Bạn không chỉ cần tạo định dạng ô, nhưng bạn cũng cần áp dụng nó cho ô!

XSSFDataFormat df = workBook.createDataFormat(); 
cs.setDataFormat(df.getFormat("d-mmm-yy")); 

// Get/Create our cell 
XSSFRow row = sheet.createRow(2); 
XSSFCell cell = row.createCell(3); 

// Set it to be a date 
Calendar c = Calendar.getInstance(); 
c.set(2012,3-1,18); // Don't forget months are 0 based on Calendar 
cell.setCellValue(c.getTime()); 

// Style it as a date 
cell.setCellStyle(cs); 

Thứ hai, bạn cần lưu ý rằng Java và Excel hơi khác về cách diễn đạt quy tắc định dạng ngày. Bạn nên mở một bản sao của Excel, định dạng một ô mẫu theo cách bạn muốn, sau đó ghi lại các quy tắc định dạng cần thiết. Trong trường hợp của bạn, bạn đã sử dụng chữ hoa chữ thường kiểu chữ M, trong khi Excel là chữ thường (xem ở trên)

Các vấn đề liên quan