Hi!
I am glad that Aspose recently fixed the issue discussed in <a href="</a></div><div><br></div><div>However, there is still a similar bug: If I use DeleteRange(ShiftLeft), the cells that are located to the right of the deleted range (and thus shifted left), loses its validation.</div><div><br></div><div>See the attached code and XLSX-file.</div><div>Note that the cell L4 contains a validation, which gets lost in the resulting document.</div><div><br></div><div>Thanks!<br>/Fredrik</div><div><div>using System;</div><div>using System.Collections.Generic;</div><div>using System.Linq;</div><div>using System.Text;</div><div>using Aspose.Cells;</div><div>using System.Data;</div><div>using System.Diagnostics;</div><div><br></div><div>namespace Infoweaver.Forms.AsposeTest</div><div>{</div><div>    class DeleteRange</div><div>    {</div><div>        public enum DeleteRangeEnum</div><div>        {</div><div>            ShiftCellsLeft,</div><div>            ShiftCellsUp,</div><div>            DeleteEntireColumns,</div><div>            DeleteEntireRows</div><div>        }</div><div>        public static void DoIt()</div><div>        {</div><div>            WorkbookDesigner designer = new WorkbookDesigner();</div><div>            Workbook workbook = new Workbook(Constants.sourcePath + "DeleteRange2.xlsx");
            designer.Workbook = workbook;
            Range range = workbook.Worksheets.GetRangeByName("DUP_Project");
            Worksheet worksheet = range.Worksheet;
            Cells cells = range.Worksheet.Cells;
            DeleteRangeEnum mode = DeleteRangeEnum.ShiftCellsLeft;
            switch (mode)
            {
                case DeleteRangeEnum.ShiftCellsLeft:
                case DeleteRangeEnum.ShiftCellsUp:
                    ShiftType shiftType = mode == DeleteRangeEnum.ShiftCellsLeft ? ShiftType.Left : ShiftType.Up;
                    cells.DeleteRange(range.FirstRow, range.FirstColumn, range.FirstRow + range.RowCount - 1, range.FirstColumn + range.ColumnCount - 1, shiftType);
                    break;
                case DeleteRangeEnum.DeleteEntireColumns:
                    cells.DeleteColumns(range.FirstColumn, range.ColumnCount, true);
                    break;
                case DeleteRangeEnum.DeleteEntireRows:
                    cells.DeleteRows(range.FirstRow, range.RowCount, true);
                    break;
                default:
                    throw new InvalidOperationException(string.Format("Unexpected DeleteRangeEnum: '{0}'.", mode));
            }
            string output = Constants.destPath + "DeleteRange2_result.xlsx";
            workbook.Save(output);
            Process.Start(output);
        }
    }
}