Document Solutions for Excel, .NET Edition | Document Solutions
Features / Worksheet / Range Operations / Cut or Copy Shape, Slicer, Chart and Picture
In This Topic
    Cut or Copy Shape, Slicer, Chart and Picture
    In This Topic

    DsExcel allows users to cut or copy shapes, charts, slicers and pictures from one workbook to another and from one worksheet to another.

    In order to perform the copy operation, you can use the Copy() method of the IRange interface.

    In order to perform the cut operation, you can use the Cut() method of the IRange interface.

    Refer to the following example code to see how you can cut or copy shape, slicer, chart and picture.

    C#
    Copy Code
    Workbook workbook = new Workbook();
    IWorksheet worksheet = workbook.Worksheets[0];
    
    //Create a shape in worksheet, shape's range is Range["A7:B7"]
    IShape shape = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, 1, 1, 100, 100);
    
    //Range["A1:D10"] contains Range["A7:B7"], copy a new shape to Range["C1:F7"]
    worksheet.Range["A1:D10"].Copy(worksheet.Range["C1"]);
    worksheet.Range["A1:D10"].Copy(worksheet.Range["C1:G9"]);
    
    //Range["A1:D10"] contains Range["A7:B7"],cut a new shape to Range["C1:F7"]
    worksheet.Range["A1:D10"].Cut(worksheet.Range["C1"]);
    worksheet.Range["A1:D10"].Cut(worksheet.Range["C1:G9"]);
    
    // Cross-sheet cut, copy operation
    
    Workbook workbook1 = new Workbook();
    IWorksheet worksheet1 = workbook1.Worksheets[0];
    IWorksheet worksheet2 = workbook1.Worksheets.Add();
    
    //Create a shape in worksheet, shape's range is Range["A7:B7"]
    IShape Shape = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, 1, 1, 100, 100);
    
    //Range["A1:D10"] contains Range["A7:B7"]. Copy a new shape to worksheet2's Range["C1:F7"]
    worksheet1.Range["A1:D10"].Copy(worksheet2.Range["C1"]);
    worksheet1.Range["A1:D10"].Copy(worksheet2.Range["C1:G9"]);
    
    //Range["A1:D10"] contains Range["A7:B7"]. Cut a new shape to worksheet2's Range["C1:F7"]
    worksheet1.Range["A1:D10"].Cut(worksheet2.Range["C1"]);
    worksheet1.Range["A1:D10"].Cut(worksheet2.Range["C1:G9"]);
    

    In order to duplicate a shape to the current worksheet, you can use the Duplicate() method of the IShape interface.

    Refer to the following example code to see how you duplicate an existing shape, slicer, chart and picture.

    C#
    Copy Code
    //Create shape,chart,slicer,picture
    IShape Shape1 = worksheet.Shapes.AddShape(AutoShapeType.Rectangle, 100, 100, 200, 200);
    IShape chart = worksheet.Shapes.AddChart(ChartType.ColumnClustered, 200, 300, 300, 300);
    ISlicerCache cache1 = workbook.SlicerCaches.Add("Category", "cate1");
    ISlicer slicer = cache1.Slicers.Add(workbook.Worksheets["Sheet1"], "cate1", "Category", 300, 300, 100, 200);
    IShape picture = worksheet.Shapes.AddPicture("C:/Pictures", 1, 1, 100, 100);
    
    //Duplicate shape
    IShape newShape = Shape1.Duplicate();
    //Duplicate chart
    IShape newShape1 = chart.Duplicate();
    //Duplicate slicer
    slicer.Shape.Duplicate();
    //Duplicate picture
    IShape newPicture = picture.Duplicate();