Реализуйте Cell.FormulaLocal, аналогично Range.FormulaLocal в Excel VBA, с помощью Node.js через C++

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

Формулы Microsoft Excel могут иметь разные имена в разных локализациях, регионах или языках. Например, функция SUM называется SUMME на немецком языке. Aspose.Cells не поддерживает работу с функциями на неанглийских языках. В Microsoft Excel VBA есть свойство Range.FormulaLocal, которое возвращает название функции согласно ее языке или региону. Aspose.Cells for Node.js via C++ также предоставляет свойство Cell.getFormulaLocal() для этой цели. Однако это свойство работает только при реализации метода GlobalizationSettings.getLocalFunctionName(standardName).

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

Следующий пример объясняет, как реализовать метод GlobalizationSettings.getLocalFunctionName(standardName). Метод возвращает локальное имя стандартной функции. Если имя функции SUM, он возвращает UserFormulaLocal_SUM. Вы можете изменить код по своему усмотрению и возвращать правильные локальные имена функций, например, SUM — это SUMME на немецком, а TEXT — это ТЕКСТ на русском. Также обратитесь к выводу консоли приведенного ниже образца кода для справки.

Образец кода

const AsposeCells = require("aspose.cells.node");

class GS extends AsposeCells.GlobalizationSettings {
getLocalFunctionName(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 "";
}
}

function run() {
// Create workbook
const wb = new AsposeCells.Workbook();

// Assign GlobalizationSettings implementation class
wb.getSettings().setGlobalizationSettings(new GS());

// Access first worksheet
const ws = wb.getWorksheets().get(0);

// Access some cell
const cell = ws.getCells().get("C4");

// Assign SUM formula and print its FormulaLocal
cell.setFormula("SUM(A1:A2)");
console.log("Formula Local: " + cell.getFormulaLocal());

// Assign AVERAGE formula and print its FormulaLocal
cell.setFormula("=AVERAGE(B1:B2, B5)");
console.log("Formula Local: " + cell.getFormulaLocal());
}

// Call the run function
run();

Вывод в консоль

Formula Local: =UserFormulaLocal_SUM(A1:A2)

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