Newer
Older
ClosedXML / ClosedXML_Tests / Utils / ExcelDocsComparer.cs
@Francois Botha Francois Botha on 17 Aug 2017 1 KB Improve color support and more
using System;
using System.IO;
using System.IO.Packaging;

namespace ClosedXML_Tests
{
    internal static class ExcelDocsComparer
    {
        public static bool Compare(string left, string right, bool stripColumnWidths, out string message)
        {
            using (FileStream leftStream = File.OpenRead(left))
            {
                using (FileStream rightStream = File.OpenRead(right))
                {
                    return Compare(leftStream, rightStream, stripColumnWidths, out message);
                }
            }
        }

        public static bool Compare(Stream left, Stream right, bool stripColumnWidths, out string message)
        {
            using (Package leftPackage = Package.Open(left, FileMode.Open, FileAccess.Read))
            {
                using (Package rightPackage = Package.Open(right, FileMode.Open, FileAccess.Read))
                {
                    return PackageHelper.Compare(leftPackage, rightPackage, false, ExcludeMethod, stripColumnWidths, out message);
                }
            }
        }

        private static bool ExcludeMethod(Uri uri)
        {
            //Exclude service data
            if (uri.OriginalString.EndsWith(".rels") ||
                uri.OriginalString.EndsWith(".psmdcp"))
            {
                return true;
            }
            return false;
        }
    }
}