Ejemplo n.º 1
0
        internal IXLPicture CopyTo(XLWorksheet targetSheet)
        {
            if (targetSheet == null)
            {
                targetSheet = Worksheet as XLWorksheet;
            }

            IXLPicture newPicture;

            if (targetSheet == Worksheet)
            {
                newPicture = targetSheet.AddPicture(ImageStream, Format);
            }
            else
            {
                newPicture = targetSheet.AddPicture(ImageStream, Format, Name);
            }

            newPicture = newPicture
                         .WithPlacement(XLPicturePlacement.FreeFloating)
                         .WithSize(Width, Height)
                         .WithPlacement(Placement);

            switch (Placement)
            {
            case XLPicturePlacement.FreeFloating:
                newPicture.MoveTo(Left, Top);
                break;

            case XLPicturePlacement.Move:
                var newAddress = new XLAddress(targetSheet, TopLeftCellAddress.RowNumber,
                                               TopLeftCellAddress.ColumnNumber, false, false);
                newPicture.MoveTo(newAddress, GetOffset(XLMarkerPosition.TopLeft));
                break;

            case XLPicturePlacement.MoveAndSize:
                var newFromAddress = new XLAddress(targetSheet, TopLeftCellAddress.RowNumber,
                                                   TopLeftCellAddress.ColumnNumber, false, false);
                var newToAddress = new XLAddress(targetSheet, BottomRightCellAddress.RowNumber,
                                                 BottomRightCellAddress.ColumnNumber, false, false);

                newPicture.MoveTo(newFromAddress, GetOffset(XLMarkerPosition.TopLeft), newToAddress,
                                  GetOffset(XLMarkerPosition.BottomRight));
                break;
            }

            return(newPicture);
        }
Ejemplo n.º 2
0
        internal IXLPicture CopyTo(XLWorksheet targetSheet)
        {
            if (targetSheet == null)
            {
                targetSheet = Worksheet as XLWorksheet;
            }

            IXLPicture newPicture;

            if (targetSheet == Worksheet)
            {
                newPicture = targetSheet.AddPicture(ImageStream, Format);
            }
            else
            {
                newPicture = targetSheet.AddPicture(ImageStream, Format, Name);
            }

            newPicture = newPicture
                         .WithPlacement(XLPicturePlacement.FreeFloating)
                         .WithSize(Width, Height)
                         .WithPlacement(Placement);

            switch (Placement)
            {
            case XLPicturePlacement.FreeFloating:
                newPicture.MoveTo(Left, Top);
                break;

            case XLPicturePlacement.Move:
                newPicture.MoveTo(targetSheet.Cell(TopLeftCell.Address), GetOffset(XLMarkerPosition.TopLeft));
                break;

            case XLPicturePlacement.MoveAndSize:
                newPicture.MoveTo(targetSheet.Cell(TopLeftCell.Address), GetOffset(XLMarkerPosition.TopLeft), targetSheet.Cell(BottomRightCell.Address),
                                  GetOffset(XLMarkerPosition.BottomRight));
                break;
            }

            return(newPicture);
        }