c# exceldna 自定义函数使用自定义类,无法正常计算
下面的自定义函数是计算300*400*500mm 这种立方体的体积或者侧面积的,函数中加入了自定义类,但自定义类的代码怎么改都在Excel里计算还是显示#value。public static object MsBase(string dim, UInt16 opt = 0)
{
string pattern = @"\d+\*\d+\*\d+";
if (Regex.IsMatch(dim,pattern))
{
string tmp = Regex.Match(dim, pattern).Value;
string[] arg = Regex.Split(tmp, @"/*");
double L = Convert.ToDouble(arg) / 1000;
double W = Convert.ToDouble(arg) / 1000;
double H = Convert.ToDouble(arg) / 1000;
Box myclass = new Box(L,W,H);
if (opt == 0) { return myclass.Cube(); }
if (opt == 1) { return myclass.SideArea(); }
else { return ExcelError.ExcelErrorNA; }
}
else { return ExcelError.ExcelErrorNA; }
}
}
public class Box
{
public double L { get; set; }
public double W { get; set; }
public double H
{
get; set;
}
public bool IsValid { get; set; }
// Constructor
public Box(double param1,double param2,double param3)
{
L = param1;
W = param2;
H = param3;
}
//Function
public double Cube() { return L * W * H; }
public double SideArea() { return 2 * (L + W) * H; }
public double BottomArea() { return L * W; }
}
}
你可以试下把excel单个单元格的宽度拉得很宽,或者设置单元格格式为数值,显示2位小数。 only998 发表于 2023-4-5 18:54
你可以试下把excel单个单元格的宽度拉得很宽,或者设置单元格格式为数值,显示2位小数。
上面的代码和单元格宽度一点关系都没有:rggrg 将返回到Excel 的值在C#里调试输出,然后把这个值手动填写到Excel里看看,不排除单元格的格式问题
页:
[1]