1、用Visual Studio新建一个类库,命名为CashFlowTools
2、引用必要的类库:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using Microsoft.Office.Interop.Excel;
其中最后一个需要在“引用”中添加一个COM组件“Microsoft.Office.Interop.Excel”
3、添加COM相关属性
[Guid("DDE8AA59-9860-44B3-B1AF-923ABB4A8EEE")]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
注意要生成一个GUID:
这里我使用的LinqPad,一个轻量级的IDE,支持C#、VB.NET、Linq、F#、SQL语句,非常适合用来测试少量代码。
4、添加COM的注册和反注册函数,这两个函数代码是固定的。添加后的程序结构如下
namespace CashFlowTools
{
[Guid("DDE8AA59-9860-44B3-B1AF-923ABB4A8EEE")]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
public class CashFlowTools
{
#region COM related
[ComRegisterFunction]
public static void RegisterFunction(Type type)
{
Registry.ClassesRoot.CreateSubKey(GetSubKeyName(type, "Programmable"));
var key = Registry.ClassesRoot.OpenSubKey(GetSubKeyName(type, "InprocServer32"), true);
key.SetValue("", Environment.SystemDirectory + @"\mscoree.dll", RegistryValueKind.String);
}
[ComUnreg

本文介绍了如何使用C#创建一个名为CashFlowTools的类库,用于计算非均匀现金流的净现值(NPV)和内部回报率(IRR)。通过引用Microsoft.Office.Interop.Excel COM组件,实现与Excel的交互。使用LinqPad进行测试,并提供COM组件的注册和反注册方法。在Excel中,用户可以通过加载自定义函数来调用这些计算功能。
最低0.47元/天 解锁文章
5216

被折叠的 条评论
为什么被折叠?



