Реализуйте свойство 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-.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)