2011-06-30 17 views
6

Tôi đang sử dụng JXL để viết tệp Excel. Khách hàng muốn một cột nhất định để hiển thị số có một chữ số thập phân. Họ cũng muốn các loại tế bào là "Số". Khi tôi sử dụng mã (kiểm tra) sau, các con số được hiển thị chính xác, nhưng loại ô là "Tùy chỉnh".Định dạng số JXL và Loại di động

File excelFile = new File("C:\\Users\\Rachel\\Desktop\\TestFile.xls"); 

WritableWorkbook excelBook = Workbook.createWorkbook(excelFile); 
WritableSheet excelSheet = excelBook.createSheet("Test Sheet", 0); 

WritableFont numberFont = new WritableFont(WritableFont.ARIAL); 
WritableCellFormat numberFormat = new WritableCellFormat(numberFont, new NumberFormat("#0.0")); 

Number numberCell = new Number(0, 0, 25, numberFormat); 
excelSheet.addCell(numberCell); 

excelBook.write(); 
excelBook.close(); 

Nếu tôi thay đổi định dạng số là một trong các biến trong NumberFormats (ví dụ NumberFormats.INTEGER), các loại tế bào là đúng. Nhưng các con số được hiển thị dưới dạng số nguyên của khóa học. Tôi không thể tìm thấy một biến trong NumberFormats phù hợp với nhu cầu của tôi.

Bất kỳ ai biết cách để hiển thị cả số và loại ô đều chính xác? Tôi cần tất cả các số được hiển thị với 1 số thập phân (ngay cả khi chúng là số nguyên). Và tôi không thể chuyển sang bất kỳ công nghệ nào khác, tôi phải sử dụng JXL.

+0

Tôi biết các câu hỏi đã được hỏi trong năm 2011. Bạn có quản lý để hình ngoài? Tôi có cùng một vấn đề mặc dù tôi có tùy chọn khác đó là sử dụng Apache POI. – PSone

+1

Tôi quên những gì tôi đã làm và bây giờ với một công ty khác. Lấy làm tiếc –

Trả lời

7

Tôi xin lỗi nếu đây không phải là điều bạn muốn. Nhưng, những gì tôi hiểu về nhu cầu của bạn là có loại ô = số với 1 chữ số thập phân. Bạn có thể xác định định dạng số của riêng mình. Bạn có thể sử dụng định dạng này ("# .0") để có được những gì bạn muốn (ví dụ: 900.0,23.0,34324.0 và Vv)

NumberFormat decimalNo = new NumberFormat("#.0"); 
WritableCellFormat numberFormat = new WritableCellFormat(decimalNo); 
//write to datasheet 
Number numberCell = new Number(0, 0, 25, numberFormat); 
excelSheet.addCell(numberCell); 
Các vấn đề liên quan