2011-01-31 23 views
9

Chcę użyć funkcji ŚREDNIA, ale gdy mam komórkę odniesienia, która jest etykieta otrzymuję #VALUE jako wynik.JXL rozwiązać problem #VALUE

I został dołączony przykładowy kawałek kodu dla co próbuję zrobić:

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

nie mogę przekonwertować pustą komórkę na 0, ponieważ wartość AVG zmieni.

JAR UŻYWANY

JXL-2.6.jar

w czasie rzeczywistym, a nie etykiety wartość będzie wykorzystana, na podstawie wzoru

IF (Some- odwołanie do komórki = "", "", pewna wartość)

Jednak; kiedy próbuję edytować komórkę kluczem F2 zmienia ona swój plan wykonania i otrzymuję poprawne dane wyjściowe.

Czy istnieje dostępne rozwiązanie to ....

Oczekiwane rozwiązanie:

Aby komórkę jako pusty, ale zmienić format komórek tak, że #VALUE nie jest zwracana.

Ten post jest nieco podobne do

JXL #VALUE problem with reference to other sheet

Odpowiedz

1

Ok, pierwszy problem widzę jest, że numery jesteś dodając są w kolumnie „C” nie „D”. Może masz już liczby w "D", więc nie jest to problem, ale coś do rozważenia.

Myślę, że dużym problemem jest sposób, że JXL działa arkusz, to other questioner uważało, że ich nazwany zakres nie został stworzony przed ich formuła została włożona, więc musieli to tylko działa, gdy szli „do” komórki tak jak ty. Możliwe, że arkusz "Wyjście" nie jest inicjowany, więc nie ma poprawnego odniesienia dla wyjścia! referencje.

Skoro jesteś także wstawianie formuły w tym samym arkuszu, a następnie zrzucić odniesień arkusze i napisać wiersz tak:

Formula formula = new Formula(3,5,"AVERAGE(D1:D5)"); 
Powiązane problemy