使用c#读取Excel文件中的行

时间:2012-10-23 19:02:03

标签: c# .net excel unit-testing

我添加了一个Excel文件来提供单元测试值。

下面是一个关于我之前做过什么的例子

public void test1()
{
    try
    {
        var Service = new Service.ServiceClient();
        var Cid = testContextInstance.DataRow["CId"].ToString();
        var MNumber = testContextInstance.DataRow["MNumber"].ToString();
        var VID = testContextInstance.DataRow["VID"].ToString();
        var isVisit = new Service.ISVisit()
        {
        };

    var first = Service.Medis(isVisit).Cast<Service.ISMedi>().FirstOrDefault();
    // Assert
    Assert.AreEqual("12345678", first.Proc.ProcID);
    }

。我正在使用excel表格为最不正确的人提供价值。

enter image description here

通过使用上面的示例代码,我可以遍历excel中的每一行并将值设置为变量。但要求不是将excel附加为数据驱动源而不是使用Oledb方式查询Excel。他们说我使用Microsoft.Office.Interop.Excel;

任何人都可以帮我解决如何更改代码以逐行检索excel中的数据并使用不同的方法将单元格分配给各自的变量。这是一个c#Unittest框架

2 个答案:

答案 0 :(得分:4)

请参阅http://msdn.microsoft.com/en-us/library/office/microsoft.office.interop.excel(v=office.11).aspx

这可能是C#: How to access an Excel cell?的副本,在使用Interop的答案中有示例。

警告

因为你在同一个问题中提到了webservices和Office interop:

  

Microsoft目前不推荐,也不支持,   任何无人值守的Microsoft Office应用程序的自动化,   非交互式客户端应用程序或组件(包括ASP,   ASP.NET,DCOM和NT服务),因为Office可能会出现不稳定   Office在此环境中运行时的行为和/或死锁。

有关详细信息,请参阅http://support.microsoft.com/kb/257757

<强> OOXML

如果可能,您应该使用OOXml,这是以编程方式使用Office文档的推荐方法。

答案 1 :(得分:0)

为什么不尝试使用rpa工具?那里很容易。 这是G1ANT的rpa工具之一中的代码。

addon msoffice version 4.101.0.0
addon core version 4.101.0.0
addon language version 4.103.0.0
excel.open ♥environment⟦USERPROFILE⟧\Desktop\challenge.xlsx
for ♥n from 1 to 10 step 1
excel.getrow ♥n 
dialog  ♥result
end

此机器人将以“结果”形式以列表格式存储数据,您可以将代码复制并粘贴到工作室。