[英]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.