Реализуйте свойство Cell.FormulaLocal аналогично Excel VBA Range.FormulaLocal
Возможные сценарии использования
Множество локализаций функций Microsoft Excel могут иметь разные названия в разных регионах или языках. Например, функция SUM называется SUMME в немецком. Aspose.Cells не работает с неанглийскими названиями функций. В Microsoft Excel VBA есть свойство Range.FormulaLocal, которое возвращает название функции в соответствии с языком или регионом. Aspose.Cells также предоставляет свойство Cell.FormulaLocal для этой цели. Однако это свойство работает только при реализации метода GlobalizationSettings.getLocalFunctionName(String standardName)
Реализовать Cell.FormulaLocal аналогично Excel VBA Range.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.*; | |
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."); | |
} | |
} |
Вывод в консоль
Formula Local: =UserFormulaLocal_SUM(A1:A2)
Formula Local: =UserFormulaLocal_AVERAGE(B1:B2,B5)