Copy and Move Worksheets Within and Between Workbooks with Node.js via C++

Copying and Moving Worksheets

Copying a Worksheet within a Workbook

The initial steps are the same for all examples.

  1. Create two workbooks with some data in Microsoft Excel. For the purposes of this example, we created two new workbooks in Microsoft Excel and entered some data into the worksheets.

    • FirstWorkbook.xlsx (3 worksheets)
    • SecondWorkbook.xlsx (1 worksheet)
  2. Download and install Aspose.Cells:

    1. Download Aspose.Cells for Node.js via C++
    2. Install it on your development computer. All Aspose components, when installed, work in evaluation mode. The evaluation mode has no time limit and it only injects watermarks into produced documents.
  3. Create a project:

    1. Start your development environment.
    2. Create a new console application.
  4. Add references:

    1. Add a reference to Aspose.Cells to the project. For example, add a reference to ...\Program Files\Aspose\Aspose.Cells\Bin\NodeJs\Aspose.Cells.dll.
  5. Copy the worksheet within a workbook

    The first example copies the first worksheet (Copy) within FirstWorkbook.xlsx.

    When executing the code, the worksheet named Copy is copied within FirstWorkbook.xlsx with the name “Last Sheet.”

    const path = require("path");
    const AsposeCells = require("aspose.cells.node");
    
    // The path to the documents directory.
    const dataDir = path.join(__dirname, "data");
    
    // Open a file into the first workbook.
    const excelWorkbook1 = new AsposeCells.Workbook(path.join(dataDir, "FirstWorkbook.xlsx"));
    
    // Copy the first sheet of the first workbook within the workbook
    excelWorkbook1.getWorksheets().get(2).copy(excelWorkbook1.getWorksheets().get("Copy"));
    
    // Save the file.
    excelWorkbook1.save(path.join(dataDir, "FirstWorkbookCopied_out.xlsx"));
    

Moving a Worksheet within a Workbook

The code below shows how to move a worksheet from one position in a workbook to another. Executing the code moves the worksheet called Move from index 1 to index 2 in FirstWorkbook.xlsx.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "FirstWorkbook.xlsx");

// Open a file into the first workbook.
const excelWorkbook2 = new AsposeCells.Workbook(filePath);

// Move the sheet
const worksheets = excelWorkbook2.getWorksheets();
const worksheet = worksheets.get(0);
worksheet.moveTo(1);

// Save the file.
excelWorkbook2.save(path.join(dataDir, "FirstWorkbookMoved_out.xlsx"));

Copying a Worksheet between Workbooks

Executing the code copies the worksheet named Copy into SecondWorkbook.xlsx with the name Sheet2.

const AsposeCells = require("aspose.cells.node");
const path = require("path");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const excelWorkbook3 = new AsposeCells.Workbook();
const excelWorkbook4 = new AsposeCells.Workbook();

// Create source worksheet
excelWorkbook3.getWorksheets().add("Copy");

// Add a new worksheet into the second workbook
excelWorkbook4.getWorksheets().add();

// Copy the first sheet of the first workbook into the second workbook.
excelWorkbook4.getWorksheets().get(1).copy(excelWorkbook3.getWorksheets().get("Copy"));

// Save the file.
excelWorkbook4.save(path.join(dataDir, "CopyWorksheetsBetweenWorkbooks_out.xlsx"));

Moving a Worksheet between Workbooks

Executing the code moves the worksheet named Move from FirstWorkbook.xlsx to SecondWorkbook.xlsx with the name Sheet3.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");

// Create new workbooks instead of opening existing files
const excelWorkbook5 = new AsposeCells.Workbook();
const excelWorkbook6 = new AsposeCells.Workbook();

// Add a new worksheet
excelWorkbook6.getWorksheets().add();

// Copy the sheet from the first workbook into the second workbook.
excelWorkbook6.getWorksheets().get(0).copy(excelWorkbook5.getWorksheets().get(0));

// Remove the copied worksheet from the first workbook
excelWorkbook5.getWorksheets().removeAt(0);

// Save the files.
excelWorkbook5.save(path.join(dataDir, "FirstWorkbookWithMove_out.xlsx"));
excelWorkbook6.save(path.join(dataDir, "SecondWorkbookWithMove_out.xlsx"));