首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用后期绑定创建和填充excel工作表

使用后期绑定创建和填充excel工作表
EN

Stack Overflow用户
提问于 2012-05-30 19:31:00
回答 1查看 1.3K关注 0票数 2

我一直在查看微软的支持页面Binding for Office automation servers with Visual C# .NET,试图创建一个Excel工作表,用数据表中的值填充它,然后将其保存到机器上。

我有一个使用早期绑定并简单地循环遍历项目的实现,但我不知道如何使用后期绑定来实现这一点,我需要能够嵌入Interop类型以使应用程序版本独立于MS Office。

如何使用后期绑定将datatable中的行添加到新的Excel工作表中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-30 20:01:21

我建议您编写一个接口,并对数据填充步骤和excel步骤进行抽象。这样,您就可以拥有一个实现与excel进行早期绑定的系统,然后一个使用此接口填充excel工作表的引擎。步骤2是使用后期绑定而不是早期绑定来编写接口的第二个实现。然后,在创建接口时,只需在代码中用第二个实现替换第一个实现即可。

在代码中,您只需创建一个对象,即接口本身。但是,在创建它时,您可以将其指定为实现该接口的任何其他类/实现……下面是我自己的代码中的一个示例:

代码语言:javascript
运行
复制
ISpreadsheetControl SSInterface;
if (conditionCheck())
    SSInterface = new ExcelImplementer();
else
    SSInterface = new OpenOfficeImplementer();

当放置数据或更改页面设置等时,我只使用1对象SSInterface,否则我implemented...but它可以通过两种不同的方式来完成,这基于在加载时分配给接口的类。

至于关于“如何”...I的细节和细节,在你提供的链接中找到第二个例子确实非常有帮助。这都是关于类型和调用的。困难将是在任何给定时间跟踪您正在使用的内容。这是使其更难使用的事情之一,也是首先提取早期绑定实现的一个很好的理由。这样,在编写第二个方法时,您就可以看到所需的所有方法名称及其参数列表。

我还想补充这一点:对您的问题非常简单和简短的回答是“以您已有的方式来做它”,您只需更改您调用的方法,该方法将填充data...and所有excel互操作实现的其余部分。

更新

我认为这可能会做你想要的,尽管它足够混乱,我建议将它(实际上两个操作,一个可以调用另一个)放入它自己的独立方法中的某个地方。

代码语言:javascript
运行
复制
//Get a range object that contains the cell.
Parameters = new Object[2];
Parameters[0] = iRow + 1;
Parameters[1] = iCol;
objRange_Late = objSheet_Late.GetType().InvokeMember( "Cells",
    BindingFlags.GetProperty, null, objSheet_Late, Parameters );

//Write value in cell
Parameters = new Object[1];
Parameters[0] = row[col.ColumnName];
objRange_Late.GetType().InvokeMember( "Value", BindingFlags.SetProperty, 
    null, objRange_Late, Parameters );

我必须承认,我现在还没有一个可以测试它的实现,但根据我对它的了解,它应该可以工作。如果"Cells“不起作用,我也会用同样的代码"Range"...I实际上不知道它是否接受数字输入。

link to Cells property description (msdn)

你可能还想探索一下整个系统,它可以帮助你找到一些你可能正在寻找的东西。

测试过的成功地创建并测试了上面的代码,它工作得很完美。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10815425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档