ワークシートに書き込まずにカスタム関数を直接計算する
ワークシートに書き込まずにカスタム機能を直接計算する
ワークシートに関数を最初に記述せずにカスタム関数を直接計算する方法を説明します。この目的のためにはWorksheet.CalculateFormula(string formula, CalculationOptions opts)メソッドを使用してください。
このメソッドの利用法を示す次のサンプルコードをご覧ください。私たちは自社のカスタム関数MyCompany.CustomFunction()を使用し、計算エンジンによって"Aspose.Cells.“としてその値を計算し、最終的な計算値として"Welcome to Aspose.Cells.“が返されます。コードに示されている通り、カスタム機能をワークシートに書き込んでいないことがわかりますが、カスタムロジックで直接計算されています。
プログラミングサンプル
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
class ICustomEngine : AbstractCalculationEngine | |
{ | |
// Override the Calculate method with custom logic | |
public override void Calculate(CalculationData data) | |
{ | |
// Check the forumla name and calculate it yourself | |
if (data.FunctionName == "MyCompany.CustomFunction") | |
{ | |
// This is our calculated value | |
data.CalculatedValue = "Aspose.Cells."; | |
} | |
} | |
} | |
class ImplementDirectCalculationOfCustomFunction | |
{ | |
public static void Run() | |
{ | |
// Create a workbook | |
Workbook wb = new Workbook(); | |
// Accesss first worksheet | |
Worksheet ws = wb.Worksheets[0]; | |
// Add some text in cell A1 | |
ws.Cells["A1"].PutValue("Welcome to "); | |
// Create a calculation options with custom engine | |
CalculationOptions opts = new CalculationOptions(); | |
opts.CustomEngine = new ICustomEngine(); | |
// This line shows how you can call your own custom function without | |
// a need to write it in any worksheet cell | |
// After the execution of this line, it will return | |
// Welcome to Aspose.Cells. | |
object ret = ws.CalculateFormula("=A1 & MyCompany.CustomFunction()", opts); | |
// Print the calculated value on Console | |
Console.WriteLine("Calculated Value: " + ret); | |
} | |
} |
コンソール出力
上記のサンプルコードのコンソール出力は以下の通りです。
Calculated Value: Welcome to Aspose.Cells.