Реализовать Cell.FormulaLocal аналогично Excel VBA Range.FormulaLocal

Возможные сценарии использования

Microsoft Формулы Excel могут иметь разные названия в разных языковых стандартах, регионах или языках. Например,СУММАфункция называетсяСУММА на немецком. Aspose.Cells не может работать с неанглийскими именами функций. В Microsoft Excel VBA естьRange.FormulaLocalсвойство, которое возвращает имя функции в соответствии с ее языком или регионом. Aspose.Cells также предоставляетCell.FormulaLocalимущество для этой цели. Однако это свойство будет работать только тогда, когда вы реализуетеGlobalizationSettings.GetLocalFunctionName (стандартное имя строки)метод.

Реализовать Cell.FormulaLocal аналогично Excel VBA Range.FormulaLocal

В следующем примере кода объясняется, как реализоватьGlobalizationSettings.GetLocalFunctionName (стандартное имя строки) метод. Метод возвращает локальное имя стандартной функции. Если стандартное имя функцииСУММА , он возвращаетсяUserFormulaLocal_SUM Вы можете изменить код в соответствии с вашими потребностями и вернуть правильные имена локальных функций, напримерСУММА являетсяСУММА на немецком иТЕКСТ являетсяТЕКСТпо-русски. См. также вывод на консоль примера кода, приведенного ниже, для справки.

Образец кода

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Aspose.Cells.Examples.CSharp.WorkbookSettings
{
class Implement_Cell_FormulaLocal_SimilarTo_Range_FormulaLocal
{
//Implement GlobalizationSettings class
class GS : GlobalizationSettings
{
public override string GetLocalFunctionName(string standardName)
{
//Change the SUM function name as per your needs.
if (standardName == "SUM")
{
return "UserFormulaLocal_SUM";
}
//Change the AVERAGE function name as per your needs.
if (standardName == "AVERAGE")
{
return "UserFormulaLocal_AVERAGE";
}
return "";
}//GetLocalFunctionName
}//GS:GlobalizationSettings
public static void Run()
{
//Create workbook
Workbook wb = new Workbook();
//Assign GlobalizationSettings implementation class
wb.Settings.GlobalizationSettings = new GS();
//Access first worksheet
Worksheet ws = wb.Worksheets[0];
//Access some cell
Cell cell = ws.Cells["C4"];
//Assign SUM formula and print its FormulaLocal
cell.Formula = "SUM(A1:A2)";
Console.WriteLine("Formula Local: " + cell.FormulaLocal);
//Assign AVERAGE formula and print its FormulaLocal
cell.Formula = "=AVERAGE(B1:B2, B5)";
Console.WriteLine("Formula Local: " + cell.FormulaLocal);
}
}
}

Консольный вывод

Formula Local: =UserFormulaLocal_SUM(A1:A2)

Formula Local: =UserFormulaLocal_AVERAGE(B1:B2,B5)