protected Point GetSelectionColumnBounds(Range selectedRange = null) { DevExpress.Spreadsheet.Worksheet workSheet = null; if (this.spreadsheetControl.ActiveWorksheet != null) { workSheet = this.spreadsheetControl.ActiveWorksheet; } DevExpress.Spreadsheet.Range UsedRange = null, UsableRange = null; int debutCol, finCol; Ui.Office.Sheet sheet = new Ui.Office.Sheet(workSheet.Index + 1, workSheet.Name); if (selectedRange != null) { UsedRange = workSheet.GetUsedRange(); int debutLigneUsedRange = UsedRange.TopRowIndex + 1; int finLigneUsedRange = UsedRange.BottomRowIndex + 1; int debutColUsedRange = UsedRange.LeftColumnIndex + 1; int finColUsedRange = UsedRange.RightColumnIndex + 1; int debutLigneUsableRange = selectedRange.CellCount > 0 ? selectedRange.Cells[0].Row : selectedRange.Items[0].Row1; int finLigneUsableRange = selectedRange.CellCount > 0 ? selectedRange.Cells[selectedRange.Cells.Count - 1].Row : selectedRange.Items[0].Row2; int debutColUsableRange = selectedRange.CellCount > 0 ? selectedRange.Cells[0].Column : selectedRange.Items[0].Column1; int finColUsableRange = selectedRange.CellCount > 0 ? selectedRange.Cells[selectedRange.Cells.Count - 1].Column : selectedRange.Items[0].Column2; debutCol = (debutColUsedRange < debutColUsableRange) ? debutColUsableRange : debutColUsedRange; finCol = (finColUsedRange > finColUsableRange) ? finColUsableRange : finColUsedRange; } else { UsableRange = workSheet.GetUsedRange(); UsedRange = UsableRange; debutCol = UsedRange.LeftColumnIndex + 1; finCol = UsedRange.RightColumnIndex + 1; } return(new Point(debutCol, finCol)); }
protected Point GetSelectionColumnBounds(Range selectedRange = null) { Excel.Application xlApp = this.Office.GetApplication() as Excel.Application; Excel.Workbook xlWorkBook = xlApp.ActiveWorkbook; Excel.Worksheet xlWorkSheet = xlApp.ActiveSheet; Excel.Range UsedRange = null, UsableRange = null; int debutCol, finCol; Ui.Office.Sheet sheet = new Ui.Office.Sheet(xlWorkSheet.Index, xlWorkSheet.Name); if (selectedRange != null) { UsedRange = xlWorkSheet.UsedRange; int debutLigneUsedRange = UsedRange.Cells[1].Row; int finLigneUsedRange = UsedRange.Cells[UsedRange.Cells.Count].Row; int debutColUsedRange = UsedRange.Cells[1].Column; int finColUsedRange = UsedRange.Cells[UsedRange.Cells.Count].Column; int debutLigneUsableRange = selectedRange.CellCount > 0 ? selectedRange.Cells[0].Row:selectedRange.Items[0].Row1; int finLigneUsableRange = selectedRange.CellCount > 0 ? selectedRange.Cells[selectedRange.Cells.Count - 1].Row : selectedRange.Items[0].Row2; int debutColUsableRange = selectedRange.CellCount > 0 ? selectedRange.Cells[0].Column : selectedRange.Items[0].Column1; int finColUsableRange = selectedRange.CellCount > 0 ? selectedRange.Cells[selectedRange.Cells.Count - 1].Column : selectedRange.Items[0].Column2; debutCol = (debutColUsedRange < debutColUsableRange) ? debutColUsableRange : debutColUsedRange; finCol = (finColUsedRange > finColUsableRange) ? finColUsableRange : finColUsedRange; } else { UsableRange = xlWorkSheet.UsedRange; UsedRange = UsableRange; debutCol = UsedRange.Cells[1].Column; finCol = UsedRange.Cells[UsedRange.Cells.Count].Column; } return(new Point(debutCol, finCol)); }
/// <summary> /// /// </summary> /// <param name="selectedRange"></param> /// <param name="isSelected"></param> /// <returns>Rectangle(X,Y,Width,Height) /// X =>startLine /// Y => startCol /// Width => endLine /// Height => endCol /// </returns> public System.Drawing.Rectangle GetSelectionBounds(Range selectedRange = null, bool isSelected = false, bool FirstRowIsHeader = false) { DevExpress.Spreadsheet.Worksheet workSheet; if (this.spreadsheetControl.ActiveWorksheet != null) { workSheet = this.spreadsheetControl.ActiveWorksheet; } else { return(new System.Drawing.Rectangle(1, 1, 1, 1)); } DevExpress.Spreadsheet.Range selection = this.spreadsheetControl.Selection; //if (selection == null) return new System.Drawing.Rectangle(1, 1, 1, 1); DevExpress.Spreadsheet.Range UsedRange = null, UsableRange = null; int debutLigne, finLigne, debutCol, finCol; Ui.Office.Sheet sheet = new Ui.Office.Sheet(workSheet.Index + 1, workSheet.Name); if (isSelected) { int debutLigneUsedRange = -1, finLigneUsedRange = -1, debutColUsedRange = -1, finColUsedRange = -1, debutLigneUsableRange = -1, finLigneUsableRange = -1, debutColUsableRange = -1, finColUsableRange = -1; UsedRange = workSheet.GetUsedRange(); if (selectedRange != null) { debutLigneUsedRange = UsedRange.TopRowIndex + 1; finLigneUsedRange = UsedRange.BottomRowIndex + 1; debutColUsedRange = UsedRange.LeftColumnIndex + 1; finColUsedRange = UsedRange.RightColumnIndex + 1;; debutLigneUsableRange = selectedRange.Cells[0].Row; finLigneUsableRange = selectedRange.Cells[selectedRange.Cells.Count - 1].Row; debutColUsableRange = selectedRange.Cells[0].Column; finColUsableRange = selectedRange.Cells[selectedRange.Cells.Count - 1].Column; } else { UsableRange = selection; debutLigneUsedRange = UsedRange.TopRowIndex + 1; finLigneUsedRange = UsedRange.BottomRowIndex + 1; debutColUsedRange = UsedRange.LeftColumnIndex + 1; finColUsedRange = UsedRange.RightColumnIndex + 1; debutLigneUsableRange = UsableRange.TopRowIndex + 1; finLigneUsableRange = UsableRange.BottomRowIndex + 1; debutColUsableRange = UsableRange.LeftColumnIndex + 1; finColUsableRange = UsableRange.RightColumnIndex + 1; } debutLigne = (debutLigneUsedRange < debutLigneUsableRange) ? debutLigneUsableRange : debutLigneUsedRange; finLigne = (finLigneUsedRange > finLigneUsableRange) ? finLigneUsableRange : finLigneUsedRange; debutCol = (debutColUsedRange < debutColUsableRange) ? debutColUsableRange : debutColUsedRange; finCol = (finColUsedRange > finColUsableRange) ? finColUsableRange : finColUsedRange; } else { UsableRange = workSheet.GetUsedRange(); UsedRange = UsableRange; debutLigne = UsedRange.TopRowIndex + 1; finLigne = UsedRange.BottomRowIndex + 1; debutCol = UsedRange.LeftColumnIndex + 1; finCol = UsedRange.RightColumnIndex + 1; } debutLigne = FirstRowIsHeader ? debutLigne == 1 ? debutLigne + 1 : debutLigne : debutLigne; return(new System.Drawing.Rectangle(debutLigne, debutCol, finLigne, finCol)); }