Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        /// <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));
        }