2011-01-31 15 views
9

Quiero usar la función PROMEDIO, pero cuando tengo una celda de referencia que resulta ser una etiqueta obtengo #VALOR como salida.JXL soluciona el problema #VALOR

He adjuntado la pieza de muestra de código para lo que yo estoy tratando de hacer:

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

no puedo convertir la celda vacía a 0 ya que el valor de AVG va a cambiar.

JAR USED

jxl-2.6.jar

en tiempo real en lugar de la etiqueta valor se utilizará basa en una fórmula

IF (algu- cell-reference = "", "", algún valor)

Sin embargo; cuando trato de editar la celda con clave F2, cambia su plan de ejecución y obtengo la salida correcta.

¿Hay alguna solución disponible para este ....

solución esperada:

Para que la célula como vacío pero cambiar el formato de la celda de modo que no se devuelve #VALUE.

Este post está ligeramente relacionado con

JXL #VALUE problem with reference to other sheet

Respuesta

1

Ok, el primer problema que veo es que los números que estás agregando en están en la columna "C" no "D". Tal vez ya tengas números en "D", por lo que no es un problema, sino algo a tener en cuenta.

Creo que el gran problema es la forma en que jxl funciona la hoja de cálculo, esta other questioner pensó que su rango con nombre no se creó antes de insertar su fórmula, por lo que solo funcionaba cuando entraban en la celda, Como lo hiciste tú. Por lo tanto, es posible que su hoja "Salida" no se esté inicializando, por lo que no hay una referencia válida para la Salida. referencias.

Dado que también se está insertando la fórmula en la misma hoja, y luego volcar las referencias hoja y escribir su línea como la siguiente:

Formula formula = new Formula(3,5,"AVERAGE(D1:D5)"); 
Cuestiones relacionadas