Implement Cell.FormulaLocal similar to Excel VBA Range.FormulaLocal
Possible Usage Scenarios
Microsoft Excel Formulas may have different names in different locales or regions or languages. For example, SUM function is called SUMME in German. Aspose.Cells cannot work with non-English function names. In Microsoft Excel VBA, there is* *a *Range.FormulaLocal* property that returns the name of the function as per its language or region. Aspose.Cells also provides Cell.FormulaLocal property for this purpose. However, this property will only work when you will implement GlobalizationSettings.getLocalFunctionName(String standardName) method.
Implement Cell.FormulaLocal similar to Excel VBA Range.FormulaLocal
The following sample code explains how to implement GlobalizationSettings.getLocalFunctionName(String standardName) method. The method returns the local name of the standard function. If the standard function name is SUM, it returns UserFormulaLocal_SUM. You can change the code as per your needs and return the correct local function names e.g. SUM is SUMME in German and TEXT is ТЕКСТ in Russian. Please also see the console output of the sample code given below for a reference.
Sample Code
// 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."); | |
} | |
} |
Console Output
Formula Local: =UserFormulaLocal_SUM(A1:A2)
Formula Local: =UserFormulaLocal_AVERAGE(B1:B2,B5)