我一直在寻找微软支持页面Binding for Office automation servers with Visual C# .NET来尝试创建一个Excel工作表,用数据表中的值填充它,并将其保存到机器上 .
我有一个使用早期绑定的实现,只是循环遍历项目,但我不知道如何通过后期绑定实现这一点,我需要能够嵌入Interop类型以使应用程序版本独立于关于MS Office .
如何使用后期绑定将数据表中的行添加到新的Excel工作表?
我一直在寻找微软支持页面Binding for Office automation servers with Visual C# .NET来尝试创建一个Excel工作表,用数据表中的值填充它,并将其保存到机器上 .
我有一个使用早期绑定的实现,只是循环遍历项目,但我不知道如何通过后期绑定实现这一点,我需要能够嵌入Interop类型以使应用程序版本独立于关于MS Office .
如何使用后期绑定将数据表中的行添加到新的Excel工作表?
1 回答
我建议编写一个接口并抽象数据填充步骤和excel步骤 . 这样你就可以拥有一个系统来实现与excel的早期绑定来做事,然后是一个使用这个界面来填充excel表的引擎 . 第2步是使用Late Binding而不是早期绑定来编写接口的第二个实现 . 然后,在创建接口时,只需将第二个实现替换为代码中的第一个实现 .
在代码中,您只需创建一个对象,即接口本身 . 在创建它时,您可以将其指定为实现该接口的任何其他类/实现...这是我自己的代码中的示例:
我只使用1对象,SSInterface,放置数据或更改页面设置等等...我实现的任何其他...但它可以两种不同的方式这样做,基于我在加载时分配给接口的类时间 .
关于“如何”的细节和细节...我发现你提供的链接中的第二个例子确实非常有用 . 它全部与Type和Invoke有关 . 困难在于在任何特定时间跟踪您正在使用的内容 . 这是使其更难处理的事情之一,并且是首先提取早期绑定实现的一个很好的理由 . 这样,您可以在编写第二个时看到所需的所有方法名称及其参数列表 .
我还想补充一点:对你的问题非常简单和简短的回答是“你做的完全一样”你只是改变你如何调用填充数据的方法......以及所有的其余的excel互操作实现 .
UPDATE
我认为这可能会做你正在寻找的东西,虽然它太乱了,我建议把它(实际上两个操作,一个可以调用另一个)放到它自己独立的方法中,某处 .
我不得不承认,我现在没有可以测试它的实现,但根据我所知道的事情,这应该有用 . 如果“单元格”不起作用,我也会使用“Range”相同的代码......我实际上并不知道是否需要数字输入 .
link to Cells property description (msdn)
您可能还想稍微探索整个系统,它可以帮助您找到您可能正在寻找的一些东西 .
Tested 管理成功创建并测试上述代码,它完美运行 .