簡體   English   中英

使用 Excel-Dna 進行鏈式函數調用

[英]Chain function calls using Excel-Dna

是否可以使用 Excel-Dna 鏈接函數調用?

我正在嘗試從 Excel Sheet 中調用類似的東西:

=CreateAccount(CreateUser("John","Doe"))

但是內部函數CreateUser返回ExcelErrorValue

演示 C# 代碼如下所示:

namespace ExcelDnaDemo
{
    using ExcelDna.Integration;

    public static class MyFunctions
    {
        [ExcelFunction(Description = "C-U")]
        public static object CreateUser(string firstName, string lastName)
        {
            return new User(firstName, lastName);
        }

        [ExcelFunction(Description = "C-A")]
        public static string CreateAccount(
            [ExcelArgument(
                Name = "Usr",
                Description = "User test", AllowReference = true)]
            object user)
        {
            var a = new Account(user);
            return $"{a.User.FirstName} {a.User.LastName} {a.Id}";
        }
    }

    public class User
    {
        public User(string firstName, string lastName)
        {
            FirstName = firstName;
            LastName = lastName;
        }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

    public class Account
    {
        public object User { get; private set; }
        public Guid Id { get; private set; }
        public Account(object user)
        {
            User = user;
            Id = Guid.NewGuid();
        }
    }
}

您可以將新用戶添加到內部Dictionary<string, User>並從CreateUser函數返回某種鍵,例如“User:1”。 然后在CreateAccount您接收字符串鍵,並檢查它是否存在於字典中以檢索緩存的User對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM