我使用SpreadsheetLight生成了两个excel文件。我需要做的是比较两者是否相同。
使用文本文件这很容易,因为我只会在每个文件上生成MD5总和,但因为这些是.xlsx文件,这并不像每个文件生成导致稍微不同的文件那么容易。从我所看到的已经有一个基本上比较2个excel文件的内容本身的解决方案:Comparing two excel files for differences
那么与该问题的基本问答有什么不同:
所以我的问题是:有没有其他方法来比较2个excel文件(特别是与SpreadsheetLight involvde)?
答案 0 :(得分:0)
我不认为一个简单的嵌套for
循环可以解决这个问题:
bool AreSheetsIdentical(SLDocument doc1, SLDocument doc2)
{
SLWorksheetStatistics stats1 = doc1.GetWorksheetStatistics();
SLWorksheetStatistics stats2 = doc2.GetWorksheetStatistics();
for (int i = 1; i < stats1.EndColumnIndex; i++)
{
for (int j = 1; j < stats1.EndRowIndex; j++)
{
if (doc1.GetCellValueAsString(i, j) != doc2.GetCellValueAsString(i, j))
return false;
if (doc1.GetCellStyle(i, j) != doc2.GetCellStyle(i, j))
return false;
}
}
return true;
}
您也可以使用GetWorksheetStatistics
在那里进行一些预先检查,因为如果他们没有相同数量的行和列,则他们显然不相同。