Implementar Cell.FormulaLocal similar a Excel VBA Range.FormulaLocal
Escenarios de uso posibles
Las fórmulas de Microsoft Excel pueden tener nombres diferentes en diferentes localidades, regiones o idiomas. Por ejemplo, la función SUM se llama SUMME en Alemán. Aspose.Cells no puede trabajar con nombres de funciones que no sean en inglés. En Microsoft Excel VBA, hay una propiedad Range.FormulaLocal que devuelve el nombre de la función en función de su idioma o región. Aspose.Cells también proporciona la propiedad Cell.FormulaLocal para este propósito. Sin embargo, esta propiedad solo funcionará cuando implementes el método GlobalizationSettings.getLocalFunctionName(String standardName)
Implementar Cell.FormulaLocal similar a Excel VBA Range.FormulaLocal
El siguiente código de ejemplo explica cómo implementar el método GlobalizationSettings.getLocalFunctionName(String standardName). El método devuelve el nombre local de la función estándar. Si el nombre de la función estándar es SUM, devuelve UserFormulaLocal_SUM. Puedes modificar el código según tus necesidades y devolver los nombres correctos de las funciones locales, por ejemplo, SUM es SUMME en Alemán y TEXT es ТЕКСТ en Ruso. También debes consultar la salida de la consola del código de ejemplo que se proporciona abajo como referencia.
Código de muestra
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
package AsposeCellsExamples.WorkbookSettings; | |
import com.aspose.cells.*; | |
import AsposeCellsExamples.Utils; | |
public class Implement_Cell_FormulaLocal_SimilarTo_Range_FormulaLocal { | |
//Implement GlobalizationSettings class | |
class GS extends GlobalizationSettings { | |
public String getLocalFunctionName(String standardName) | |
{ | |
//Change the SUM function name as per your needs. | |
if(standardName.equals("SUM")) | |
{ | |
return "UserFormulaLocal_SUM"; | |
} | |
//Change the AVERAGE function name as per your needs. | |
if (standardName.equals("AVERAGE")) | |
{ | |
return "UserFormulaLocal_AVERAGE"; | |
} | |
return ""; | |
}//getLocalFunctionName | |
}//GS extends GlobalizationSettings | |
public void Run() throws Exception { | |
//Create workbook | |
Workbook wb = new Workbook(); | |
//Assign GlobalizationSettings implementation class | |
wb.getSettings().setGlobalizationSettings(new GS()); | |
//Access first worksheet | |
Worksheet ws = wb.getWorksheets().get(0); | |
//Access some cell | |
Cell cell = ws.getCells().get("C4"); | |
//Assign SUM formula and print its FormulaLocal | |
cell.setFormula("SUM(A1:A2)"); | |
System.out.println("Formula Local: " + cell.getFormulaLocal()); | |
//Assign AVERAGE formula and print its FormulaLocal | |
cell.setFormula("=AVERAGE(B1:B2, B5)"); | |
System.out.println("Formula Local: " + cell.getFormulaLocal()); | |
} | |
public static void main(String[] args) throws Exception { | |
System.out.println("Aspose.Cells for Java Version: " + CellsHelper.getVersion()); | |
Implement_Cell_FormulaLocal_SimilarTo_Range_FormulaLocal pg = new Implement_Cell_FormulaLocal_SimilarTo_Range_FormulaLocal(); | |
pg.Run(); | |
// Print the message | |
System.out.println("Implement_Cell_FormulaLocal_SimilarTo_Range_FormulaLocal executed successfully."); | |
} | |
} |
Salida de la consola
Formula Local: =UserFormulaLocal_SUM(A1:A2)
Formula Local: =UserFormulaLocal_AVERAGE(B1:B2,B5)