找回密码
 立即注册

QQ登录

只需一步,快速开始

jyjc讲师达人认证
高级会员   /  发表于:2021-2-23 17:32:31
13#
Richard.Ma 发表于 2021-2-23 17:28
目前没有其他的办法

GC中的设置实际上和你在Excel中直接做设置的结果是一致的,你可以在Excel中也验证一 ...

我指的扩展DBRW函数啊,Calculate的时候自动执行。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-23 18:01:44
14#
你说的DBRW函数在GCExecel以及Excel中都是没有的,请详细描述一下你一块是如何使用的,我再帮你看看有没有解决的办法
回复 使用道具 举报
jyjc讲师达人认证
高级会员   /  发表于:2021-2-23 18:07:16
15#
Richard.Ma 发表于 2021-2-23 18:01
你说的DBRW函数在GCExecel以及Excel中都是没有的,请详细描述一下你一块是如何使用的,我再帮你看看有没有 ...

我这边是扩展了DBRW函数Evaluate方法,在DBRW函数里面根据单元格的内容不同设置不同的样式,是通过属性设置的。B列和C列是不同的数据源,是2个DBRW函数,对workbook.Calculate()时就自动执行了。执行的时候没办法设置顺序,所以不知道怎么优化。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-2-23 18:22:45
16#
jyjc 发表于 2021-2-23 18:07
我这边是扩展了DBRW函数Evaluate方法,在DBRW函数里面根据单元格的内容不同设置不同的样式,是通过属性设 ...

问题已收到,预计明天给您答复
回复 使用道具 举报
jyjc讲师达人认证
高级会员   /  发表于:2021-2-24 11:53:29
17#
本帖最后由 jyjc 于 2021-2-24 11:54 编辑
DerrickJiao 发表于 2021-2-23 18:22
问题已收到,预计明天给您答复

自定义函数设置如下;
namespace Mysoft.Szjcpt.GcExcel.CustomFunctionX
{
    public class MYDBRWFunctionX : CustomFunction
    {
        /// <summary>
        /// 自定义函数
        /// </summary>
        public MYDBRWFunctionX()
               : base("MYDBRW", FunctionValueType.Object, CommonFunctionX.CreateParameters())
        {

        }

        public override object Evaluate(object[] arguments, ICalcContext context)
        {
            var cell = context.Worksheet.Cells[context.Row, context.Column];
            //按属性设置样式
            cell.Interior.Color = Color.FromArgb(240, 241, 244);
            cell.Locked = true;
            cell.Font.Size = 10.5;
            cell.IndentLevel = 0;
            cell.Borders.Color = Color.FromArgb(225, 227, 230);
            cell.HorizontalAlignment = HorizontalAlignment.Right;
            cell.Borders.LineStyle = BorderLineStyle.Thin;

            //按style设置样式
            cell.Style = context.Worksheet.Workbook.Styles["ReadOnlyStyle"];

            return "";
        }
    }
}

表格使用格式:=MYDBRW("x_面积规划指标_产品",$B$1,$B$2,$A4,$B$3)




回复 使用道具 举报
jyjc讲师达人认证
高级会员   /  发表于:2021-2-24 13:02:50
18#
Richard.Ma 发表于 2021-2-23 18:01
你说的DBRW函数在GCExecel以及Excel中都是没有的,请详细描述一下你一块是如何使用的,我再帮你看看有没有 ...

自定义函数已上传了,目前的问题:1、设置属性和使用style设置样式时不一样,设置属性前后顺序不同,导致边框样式被覆盖;设置style边框不会被覆盖;2、自定义函数内使用style有性能问题。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-24 13:59:00
19#
请提供你这边代码中CreateParameters方法的代码
回复 使用道具 举报
jyjc讲师达人认证
高级会员   /  发表于:2021-2-25 09:53:39
20#
Richard.Ma 发表于 2021-2-24 13:59
请提供你这边代码中CreateParameters方法的代码

public static Parameter[] CreateParameters()
        {
            Parameter[] parameters = new Parameter[254];
            for (int i = 0; i < 254; i++)
            {
                parameters = new Parameter(FunctionValueType.Text, true);
            }
            return parameters;
        }
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-2-25 10:52:35
21#
收到,但是Evaluate方法中具体的逻辑,我看你并没有写在代码中,统一都是设置的相同的样式
请私信给我你这边的电话,我直接电话联系你确定问题吧
回复 使用道具 举报
jyjc讲师达人认证
高级会员   /  发表于:2021-2-25 11:23:50
22#
本帖最后由 jyjc 于 2021-2-25 11:27 编辑
Richard.Ma 发表于 2021-2-25 10:52
收到,但是Evaluate方法中具体的逻辑,我看你并没有写在代码中,统一都是设置的相同的样式
请私信给我你这 ...

好的,已经发了。里面的具体逻辑,就是值处理的逻辑,这个因为与业务相关的所以就没贴上去。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部