实现类似于Excel VBA Range.FormulaLocal的Cell.FormulaLocal
可能的使用场景
Microsoft Excel 中的公式在不同地区或语言中可能有不同的名称。例如,SUM 函数在德语中叫作 SUMME。Aspose.Cells 不能处理非英语的函数名。在 Microsoft Excel VBA 中,有 Range.FormulaLocal 属性,可以返回根据其语言或区域的函数名。Aspose.Cells 也提供 Cell.FormulaLocal 属性实现此功能,但仅在实现 GlobalizationSettings.getLocalFunctionName(String standardName) 方法时有效。
实现类似于Excel VBA Range.FormulaLocal的Cell.FormulaLocal
以下示例演示了如何实现 [GlobalizationSettings.getLocalFunctionName(String standardName)] 方法。该方法返回标准函数的本地名称。例如,标准函数名 SUM 对应 UserFormulaLocal_SUM。你可以根据需要修改代码,以返回正确的本地函数名,比如,SUM 在德语中是 SUMME,TEXT 在俄语中是 ТЕКСТ。下面的控制台输出示例为参考。
示例代码
| // 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.*; | |
| 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."); | |
| } | |
| } |
控制台输出
Formula Local: =UserFormulaLocal_SUM(A1:A2)
Formula Local: =UserFormulaLocal_AVERAGE(B1:B2,B5)