Selenium - 使用读取excel文件的数据提供程序将多个参数传递给@Test方法

时间:2014-10-02 17:59:01

标签: excel selenium testng

我的@Test方法从excel工作簿中获取输入。输入值分为几个工作表。输入值的总数大于50.如何将带有多个工作表的excel数据传递给@Test方法,因为我无法将@Test方法中的所有参数定义为参数。请帮忙。

1 个答案:

答案 0 :(得分:0)

您可以使用System.Data.OleDb并在某种程度上使用它....

public static DataSet actual_read(string filename)
        {
            var conn = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0; data source={0}; Extended Properties=Excel 12.0;", filename);
            DataSet allSheetVal = new DataSet();
            string[] sheets = GetExcelsheetNames(conn);
            //bool isspace = false;
            using (OleDbConnection con = new OleDbConnection(conn))
            {
                con.Open();
                foreach (string sheet in sheets)
                {
                    string[] spsheet = sheet.Split(' ');
                    int toSub = (spsheet.Count() > 1) ? 2 : 1;
                    string sheetName = sheet;
                    if (sheetName[sheetName.Length - toSub] != '$')
                    {
                        if (toSub == 2)
                        {
                            sheetName = sheetName.Substring(0, (sheetName.Length - 1));
                            sheetName += "$'";
                        }
                        else
                            sheetName += '$';
                    } 
                    var adapter = new OleDbDataAdapter("select * from [" + sheetName + "]", con);
                    var ds = new DataSet();
                    adapter.Fill(ds, sheetName);
                    allSheetVal.Tables.Add(ds.Tables[sheetName].Copy());
                }
                con.Close();
            }
            return allSheetVal;
        }

这样它将返回一个DataSet,然后你可以读取它....(注意每个工作表在此执行中被视为一个表)