/// <summary>
        /// Combines this instance with reference parameter.
        /// </summary>
        /// <param name="reference">The reference.</param>
        public virtual void Combine(XlsxStyleBorders reference)
        {
            if (reference == null)
            {
                return;
            }

            var hasElements = this.Any();

            if (!hasElements)
            {
                foreach (var referenceSection in reference)
                {
                    var sheet = referenceSection.Clone();
                    sheet.SetOwner(this);
                    Add(sheet);
                }
            }
            else
            {
                int i = 0;
                foreach (var border in this)
                {
                    var refBorder = reference[i];
                    if (refBorder != null)
                    {
                        border.Combine(refBorder);
                    }

                    i++;
                }
            }
        }
        /// <summary>
        /// Clones this instance.
        /// </summary>
        /// <returns>
        /// A new object that is a copy of this instance.
        /// </returns>
        public XlsxStyleBorders Clone()
        {
            var cloned = new XlsxStyleBorders(Parent)
            {
                Properties = Properties.Clone()
            };

            foreach (XlsxStyleBorder border in this)
            {
                cloned.Add(border.Clone());
            }

            return(cloned);
        }