C# Bool返回true,而其中一个excel单元格值与使用C的其他单元格值不匹配#
我比较了workbook1的第一张工作表和wrokook2的第一张工作表,然后在比较了第一张工作表的数据后,转到第二张工作表。将工作簿1的第二个工作表与工作簿2的第二个工作表进行比较。这里是图片 我使用的代码是C# Bool返回true,而其中一个excel单元格值与使用C的其他单元格值不匹配#,c#,selenium,mstest,C#,Selenium,Mstest,我比较了workbook1的第一张工作表和wrokook2的第一张工作表,然后在比较了第一张工作表的数据后,转到第二张工作表。将工作簿1的第二个工作表与工作簿2的第二个工作表进行比较。这里是图片 我使用的代码是 public bool CompareFiles(string filePath1, string filePath2) { bool result = false; Microsoft.Office.Interop.E
public bool CompareFiles(string filePath1, string filePath2)
{
bool result = false;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Visible = true;
excel.DisplayAlerts = false;
//Open files to compare
Microsoft.Office.Interop.Excel.Workbook workbook1 = excel.Workbooks.Open(filePath1);
Microsoft.Office.Interop.Excel.Workbook workbook2 = excel.Workbooks.Open(filePath2);
int numSheets = workbook2.Sheets.Count;
for (int a = 1; a <= numSheets; a++)
{
//Open sheets to grab values from
Microsoft.Office.Interop.Excel.Worksheet worksheet1 = (Microsoft.Office.Interop.Excel.Worksheet)workbook1.Sheets[a];
Microsoft.Office.Interop.Excel.Worksheet worksheet2 = (Microsoft.Office.Interop.Excel.Worksheet)workbook2.Sheets[a];
//Get the used range of cells
Microsoft.Office.Interop.Excel.Range range = worksheet2.UsedRange;
int maxColumns = range.Columns.Count;
int maxRows = range.Rows.Count;
//Check that each cell matches
for (int i = 1; i <= maxColumns; i++)
{
for (int j = 1; j <= maxRows; j++)
{
var value = range.Cells[maxRows, maxColumns].Value2;
if (worksheet1.Cells[j, i].value== worksheet2.Cells[j, i].value)
{
result = true;
}
else
result = false;
}
}
}
workbook1.Close();
workbook2.Close();
excel.Quit();
return result;
}
Assert.IsTrue(CompareFiles(filepath1 , filepath2);
public bool比较文件(字符串文件路径1、字符串文件路径2)
{
布尔结果=假;
Microsoft.Office.Interop.Excel.Application Excel=新的Microsoft.Office.Interop.Excel.Application();
excel.Visible=true;
excel.DisplayAlerts=false;
//打开要比较的文件
Microsoft.Office.Interop.Excel.Workbook workbook1=Excel.Workbooks.Open(文件路径1);
Microsoft.Office.Interop.Excel.Workbook workbook2=Excel.Workbooks.Open(文件路径2);
int numSheets=workbook2.Sheets.Count;
对于(int a=1;a您可能正在比较对象引用(我假设worksheet2.Cells[j,I].value是一个对象)。请尝试将其转换为字符串
if ((string)worksheet1.Cells[j, i].value== (string)worksheet2.Cells[j, i].value)
您是否应该将var转换为字符串并使用string.Compare?我建议调试该特定行的读取方式。它显示“无法将类型“double”转换为“string”,这是因为第3列中有数字。但它仍在传递testcase,因为单元格中的值不同。