AbstractCalculationEngine
AbstractCalculationEngine class
Aspose.Cells’in varsayılan hesaplama motorunu genişletmek için kullanıcının özel hesaplama motorunu temsil eder.
public abstract class AbstractCalculationEngine
Özellikleri
İsim | Tanım |
---|---|
virtual IsParamLiteralRequired { get; } | Bu motorun hesaplama yaparken parametrenin değişmez metnine ihtiyacı olup olmadığını gösterir. Varsayılan değer false. |
virtual ProcessBuiltInFunctions { get; } | Yerleşik motor tarafından desteklenen yerleşik işlevlerin bu uygulama tarafından kontrol edilip işlenip işlenmeyeceği. Varsayılan yanlıştır. Kullanıcının bazı yerleşik işlevlerin hesaplama mantığını değiştirmesi gerekiyorsa, bu özellik şu şekilde olmalıdır: true. olarak ayarla |
yöntemler
İsim | Tanım |
---|---|
abstract Calculate(CalculationData) | Verilen verilerle bir işlevi hesaplar. |
Notlar
Kullanıcı, bu uygulamada Çalışma Kitabının herhangi bir bölümünü doğrudan değiştirmemelidir (CalculationData.CalculatedValue özelliği tarafından ayarlanabilen özel işlevin hesaplanan sonucu hariç). Aksi takdirde beklenmeyen sonuçlara veya İstisnaya neden olabilir. Kullanıcının değişmesi gerekiyorsa hesaplanan dışındaki veriler, bazı özel işlevler için uygulamada sonuçlanır, örneğin, hücrenin formülünü, stilini vb. değiştirin, kullanıcı bu verileri bu uygulamada toplamalı ve bunları formül hesaplama kapsamı dışında değiştirmelidir.
Örnekler
[C#]
public class MyEngine : AbstractCalculationEngine
{
public override void Calculate(CalculationData data)
{
string funcName = data.FunctionName.ToUpper();
if ("MYFUNC".Equals(funcName))
{
// MYFUNC için hesaplamayı burada yapın
int count = data.ParamCount;
object res = null;
for (int i = 0; i < count; i++)
{
object pv = data.GetParamValue(i);
if (pv is ReferredArea)
{
ReferredArea ra = (ReferredArea)pv;
pv = ra.GetValue(0, 0);
}
// parametreyi burada işleyin
//res = ...;
}
data.CalculatedValue = res;
}
}
}
Ayrıca bakınız
- ad alanı Aspose.Cells
- toplantı Aspose.Cells