2011-01-31 5 views
9

Я хочу использовать функцию AVERAGE, но когда у меня есть эталонная ячейка, которая является ярлыком, я получаю #VALUE в качестве вывода.JXL решила проблему #VALUE

Я приложил образец кусок кода, за то, что я пытаюсь сделать:

String filename = "C:\\input.xls";  
WorkbookSettings ws = new WorkbookSettings();  
ws.setLocale(new Locale("en", "EN"));  
WritableWorkbook workbook = Workbook.createWorkbook(new File(filename), ws);  
WritableSheet s1 = workbook.createSheet("Output", 0);  
s1.addCell(new Number(1,2,6));  
s1.addCell(new Number(3, 1, 6));  
s1.addCell(new Number(3, 2, 1));  
s1.addCell(new Number(3, 3, 6));  
s1.addCell(new Label(3, 4, ""));  
Formula formula = new 
Formula(3,5,"AVERAGE(Output!D1,Output!D2,Output!D3,Output!D4,Output!D5)");  
s1.addCell(formula); 
workbook.write(); 
workbook.close(); 

Я не могу преобразовать пустую ячейку в 0, так как значение AVG изменится.

JAR ИСПОЛЬЗУЕМЫЕ

JXL-2.6.jar

В реальном времени вместо этикетки значение будет использоваться на основе формулы

ЕСЛИ (Some- cell-reference = "", "", some-Value)

Однако; когда я пытаюсь отредактировать ячейку с помощью клавиши F2, она меняет план выполнения, и я получаю правильный вывод.

Есть ли решение для этого ....

Ожидаемое решение:

Чтобы сделать ячейку как пустой, но изменить формат ячейки, так что #VALUE не возвращается.

Это сообщение немного связано с

JXL #VALUE problem with reference to other sheet

ответ

1

Хорошо, первая проблема, я вижу, что цифры вы добавляете в в колонке «C» не «D». Возможно, у вас уже есть номера в «D», поэтому это не проблема, а что-то для рассмотрения.

Я думаю, что большая проблема заключается в том, что jxl работает с электронной таблицей, этот other questioner считал, что их именованный диапазон не был создан до того, как их формула была вставлена, поэтому они работали, только когда они вошли в ячейку, как и вы. Поэтому может быть, что ваш лист «Выход» не инициализируется, поэтому для вывода нет действительной ссылки! Рекомендации.

Поскольку вы также вставить формулу в том же листе, а затем сбросить ссылки листов и написать строку:

Formula formula = new Formula(3,5,"AVERAGE(D1:D5)"); 
Смежные вопросы