Числовой формат JXL и тип ячейки - PullRequest
9 голосов
/ 30 июня 2011

Я использую JXL для записи файла Excel.Клиент хочет, чтобы в определенном столбце отображались числа с одним десятичным знаком.Они также хотят, чтобы типы ячеек были «Число».Когда я использую следующий (тестовый) код, числа отображаются правильно, но тип ячейки «Пользовательский».

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

Если я изменю числовой формат на одну из переменных в NumberFormats (например, NumberFormats.INTEGER), тип ячейки будет правильным.Но числа отображаются как целые числа, конечно.Я не могу найти переменную в NumberFormats, которая соответствует моим потребностям.

Кто-нибудь знает, как правильно настроить отображение чисел и типов ячеек?Мне нужно, чтобы все числа отображались с 1 десятичным знаком (даже если они целые числа).И я не могу перейти на любую другую технологию, я должен использовать JXL.

1 Ответ

10 голосов
/ 26 февраля 2014

Извините, если это не то, что вы хотите.Но я понимаю, что вам нужно иметь тип ячейки = число с 1 десятичным знаком.Вы можете определить свои собственные числовые форматы.Вы можете использовать этот формат ("# .0"), чтобы получить то, что вы хотите (например: 900.0,23.0,34324.0 и .etc)

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