我正在用 .NET (C#) 编写一个 DLL,它可以作为插件加载到 Excel 中。DLL 将提供许多可用作 Excel 中的公式的函数,以从外部应用程序的数据库中查找某些值。
对于这些公式函数中的每一个,DLL 都需要访问数据库,因此会有太多的数据库调用。例如,如果在 10 个单元格中使用公式 1,在 20 个单元格中使用公式 2,则将调用 30 次数据库
有没有办法可以对数据库的每个公式进行一次调用?有什么实现思路吗?
谢谢。
编辑:
基本上,我正在尝试编写一个通用 DLL(Excel 插件),任何使用 Excel 和特定 3rd 方会计软件的用户都可以使用它。用户插入 Excel 的每个公式,将根据传递的参数查询第 3 方应用程序数据库并返回特定值。
例如,用户可以使用公式查询特定分类帐的分类帐余额,或使用另一个公式查询 SKU 的库存余额等。我将有不同类别的公式,例如基于分类帐的公式,基于 SKU 的公式,等。用户可以设计并排比较报告,在单独的列中显示第一季度和第二季度的分类账余额等。
该插件旨在充当报表设计器(没有任何向导,仅基于公式),用户可以在其中设计自己的 Excel 报表,按照他们想要的方式对其进行格式化,并将会计软件中的值提取到他们想要的任何单元格中。
但是,我不是每次都从数据库中读取来评估每个公式,而是首先设计一个“公式执行计划”,这样我就可以将对数据库的多次调用合并为对单个公式的一次调用,在那里我可以传递所有用户在 Excel 工作表中该公式的所有实例中指定的参数。
否则,Excel 工作表将花费很长时间来评估公式,使其不切实际。我预计一份报告中平均有大约 100 个公式。