Node.jsを使ったC++経由で、Excel VBAのRange.FormulaLocalに類似したCell.FormulaLocalの実装
可能な使用シナリオ
Microsoft Excelの数式は、地域や言語によって異なる名前になっていることがあります。例えば、SUM関数はドイツ語ではSUMMEと呼ばれます。Aspose.Cellsは英語以外の関数名では動作しません。Microsoft Excel VBAには、その言語や地域に応じた関数名を返すRange.FormulaLocalプロパティがあります。Aspose.Cells for Node.js via C++もこの目的のためにCell.getFormulaLocal()プロパティを提供しています。ただし、このプロパティはGlobalizationSettings.getLocalFunctionName(standardName)メソッドを実装したときにのみ機能します。
Excel VBAのRange.FormulaLocalと同様にCell.FormulaLocalを実装する
次のサンプルコードは、GlobalizationSettings.getLocalFunctionName(standardName)メソッドを実装する方法を説明しています。このメソッドは、標準関数のローカル名を返します。標準関数がSUMの場合、UserFormulaLocal_SUMを返します。必要に応じてコードを変更し、正しいローカル関数名(例:ドイツ語ではSUMME、ロシア語ではТЕКСТ)を返してください。以下に示すサンプルコードのコンソール出力も参照してください。
サンプルコード
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)