【发布时间】:2021-01-23 05:42:50
【问题描述】:
我将 workbook1 的第一个工作表与 wrokook2 的第一个工作表进行比较,然后在比较第一个工作表的数据后转到第二个工作表。将 workbook1 的第二个工作表与 workbook2 的第二个工作表进行比较。这是图像
我使用的代码是
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);
现在考虑屏幕截图
两个工作簿中单元格 B5 的值不匹配。布尔值应该返回 false。当它返回 true 并且资产显示 is true 通过测试用例时。而它应该失败。只有当最后一个单元格值不同时,它才会使测试用例失败。否则它将通过测试用例。
我该如何解决这个问题?我正在使用 C#。
【问题讨论】: