1

SpreadsheetLight で生成された 2 つの Excel ファイルがあります。私がする必要があるのは、両方が同一かどうかを比較することです。

テキスト ファイルの場合、各ファイルに対して MD5 サムを生成するだけなので簡単ですが、これらは .xlsx ファイルであるため、ファイルを生成するたびにわずかに異なるファイルが生成されるため、簡単ではありません。私がすでに見たものから、基本的に2つのExcelファイルの内容自体を比較する解決策があります:違いについて2つのExcelファイルを比較する

では、その質問の基本的な質問と回答との違いは何ですか。

  1. SpreadsheetLight を使用して両方のファイルを生成しています
  2. ファイル内のデータだけでなく、すべての形式を比較する必要があります...

だから私の質問があります:2つのExcelファイルを比較する他の方法はありますか(特にSpreadsheetLight involvdeと)?

4

1 に答える 1

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同じ数の行と列がない場合、それらは明らかに同一ではないため、を使用して事前チェックを行うこともできます。

于 2015-02-19T00:41:24.440 に答える