Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium-使用读取excel文件的数据提供程序将多个参数传递给@Test method_Excel_Selenium_Testng - Fatal编程技术网

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

Selenium-使用读取excel文件的数据提供程序将多个参数传递给@Test method,excel,selenium,testng,Excel,Selenium,Testng,我的@Test方法从excel工作簿中获取输入。输入值在多个工作表中进行分类。输入值的总数超过50。如何将带有多张表的excel数据传递给@Test方法,因为我无法将@Test方法中的所有参数定义为参数。请提供帮助。您可以使用System.Data.OleDb,并以如下方式使用它 public static DataSet actual_read(string filename) { var conn = string.Format(@"Provider=

我的@Test方法从excel工作簿中获取输入。输入值在多个工作表中进行分类。输入值的总数超过50。如何将带有多张表的excel数据传递给@Test方法,因为我无法将@Test方法中的所有参数定义为参数。请提供帮助。

您可以使用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;
        }

因此,它将返回一个数据集,然后您可以读取它…注意,在此执行过程中,每个工作表都被视为一个表

您可以使用类似于读取Excel文件的工具。它必须是Exel文件,或者csv可以吗?