2011-06-30 14 views
6

Bir Excel dosyası yazmak için JXL kullanıyorum. Müşteri, belirli bir sütunun bir ondalık basamaklı sayıları göstermesini ister. Ayrıca hücre tiplerinin "Sayı" olmasını isterler. Aşağıdaki (test) kodunu kullandığımda, sayılar doğru şekilde görüntülenir, ancak hücre tipi "Özel" dir. Ben numarası formatı NumberFormats (örneğin NumberFormats.INTEGER) değişkenlerin biri olduğu değişiklik iseJXL Numara Biçimi ve Hücre Tipi

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(); 

, hücre tipi doğrudur. Ancak sayılar elbette tamsayılar olarak görüntülenir. NumberFormats'ta gereksinimlerim ile eşleşen bir değişken bulamıyorum.

Hem sayıların hem de hücre tiplerinin görüntülenmesini sağlamanın bir yolu bilen var mı? 1 ondalık ile görüntülenen tüm sayılara (tamsayı olsa bile) ihtiyacım var. Ve başka bir teknolojiye geçemiyorum, JXL kullanmalıyım.

+0

Ben soru sorulmuştur biliyorum dışarı? Apache POI kullanmak için başka seçeneğim olsa da aynı sorunu yaşıyorum. – PSone

+1

Yaptığım işi unuttum ve şimdi farklı bir şirketim var. Afedersiniz –

cevap

7

İstediğiniz bu değilse üzgünüm. Ancak, ihtiyaçlarınız hakkında anladığım şey, hücre tipi = 1 ondalık basamaklı sayıya sahip olmaktır. Kendi numara formatlarınızı tanımlamanız mümkün. Ne istediğini almak için bu biçimi ("# 0,0") kullanabilirsiniz: 2011. Şekilde yönetmek mi (mesela 900.0,23.0,34324.0 ve .vs)

NumberFormat decimalNo = new NumberFormat("#.0"); 
WritableCellFormat numberFormat = new WritableCellFormat(decimalNo); 
//write to datasheet 
Number numberCell = new Number(0, 0, 25, numberFormat); 
excelSheet.addCell(numberCell); 
İlgili konular