有没有办法比较2个excel文件的内容(包括格式)与SpreadsheetLight?

时间:2015-02-11 08:12:57

标签: c# excel spreadsheetlight

我使用SpreadsheetLight生成了两个excel文件。我需要做的是比较两者是否相同。

使用文本文件这很容易,因为我只会在每个文件上生成MD5总和,但因为这些是.xlsx文件,这并不像每个文件生成导致稍微不同的文件那么容易。从我所看到的已经有一个基本上比较2个excel文件的内容本身的解决方案:Comparing two excel files for differences

那么与该问题的基本问答有什么不同:

  1. 我使用SpreadsheetLight生成两个文件
  2. 我不仅需要比较文件内的数据,还需要比较所有格式......
  3. 所以我的问题是:有没有其他方法来比较2个excel文件(特别是与SpreadsheetLight involvde)?

1 个答案:

答案 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在那里进行一些预先检查,因为如果他们没有相同数量的行和列,则他们显然不相同。