Products

WRAPROWS function

The WRAPROWS function in Jspreadsheet Formulas Pro reshapes a vector (array of values) into rows with a specified number of items per row. This helps organize long lists into structured tables, improving readability and usability. This is particularly helpful in keeping your spreadsheet organized and easy to read.

Documentation

Wraps a vector into rows based on the specified number of items per row.

Category

Array

Syntax

WRAPROWS(vector, wrap_count, [pad_with])

Parameter Description
vector The row or column vector to wrap.
wrap_count The number of values to wrap the vector after. Must be greater than 0.
[pad_with] Optional. A value to pad the vector with when wrapping. If not specified, the vector is wrapped without padding.

Behavior

The WRAPROWS function reshapes a vector into multiple rows with a defined number of values per row. It treat different types of data as follows:

  • Empty cells: Preserved in the wrapped result as blank cells.
  • Text: Treated as regular data and included in the output without modification.
  • Booleans: Interpreted as numbers (TRUE = 1, FALSE = 0) and wrapped like other data types.
  • Errors: Any error within the input vector is propagated into the output array.

Common Errors

Error Description
#VALUE! Occurs if wrap_count is less than 1 or if the input is not a valid vector.
#REF! Occurs when the function references a range or array that does not exist.

Best practices

  • Always check to ensure that the data types in the target cells are compatible with the WRAPROWS function to avoid errors.
  • Make sure the cell references are correct and valid to avoid #REF! errors.
  • Avoid directly hardcoding data into the function. Instead, use cell references so that the function updates automatically when data changes.
  • Always confirm that the WRAPROWS function exists in your spreadsheet program, as it's not a standard function in Excel or Google Sheets.

Usage

A few examples using the WRAPROWS function.

WRAPROWS([1, 2, 3, 4, 5, 6], 3) returns [[1, 2, 3], [4, 5, 6]]  
WRAPROWS(['A', 'B', 'C', 'D'], 2, 'X') returns [['A', 'B'], ['C', 'D'], ['X', 'X']]  

Interactive Spreadsheet Demo

<html>
<script src="https://jspreadsheet.com/v11/jspreadsheet.js"></script>
<script src="https://jsuites.net/v5/jsuites.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://jspreadsheet.com/v11/jspreadsheet.css" type="text/css" />

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />
<script src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formula-pro/dist/index.min.js"></script>

<div id="spreadsheet"></div>

<script>
// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('NjdlODZiZjVmODNlYjE0MzAwMWY1ODAxN2RlM2JlYmQ3ZmJlMjVhNDBiZDJhMjAxMWU0Yjc5OTE1MjNlZjE0YWE5ZmRlN2YwMWI3ZWUwMzllNTJkNGZiMWM2ZmEwNTgxOWM1MmIxZGFjNTI5Y2YxYmU0YmEwNTY3YTBkZjk5MWEsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3lPVEF4TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

// Create a new spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
  worksheets: [{
    data: [
    [
        "Product",
        "A",
        "B",
        "C",
        "D",
        "E",
        "F"
    ],
    [
        "Sales",
        120,
        85,
        200,
        150,
        90,
        110
    ],
    [
        "Wrapped (3 cols)",
        "=WRAPROWS(B2:G2,3)"
    ],
    [
        "Wrapped (2 cols)",
        "=WRAPROWS(B2:G2,2)"
    ],
    [
        "With Padding",
        "=WRAPROWS(B2:E2,3,0)"
    ]
]
  }]
});
</script>
</html>
import React, { useRef } from "react";
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/react";
import formula from "@jspreadsheet/formula-pro";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";

// Set license
jspreadsheet.setLicense('NjdlODZiZjVmODNlYjE0MzAwMWY1ODAxN2RlM2JlYmQ3ZmJlMjVhNDBiZDJhMjAxMWU0Yjc5OTE1MjNlZjE0YWE5ZmRlN2YwMWI3ZWUwMzllNTJkNGZiMWM2ZmEwNTgxOWM1MmIxZGFjNTI5Y2YxYmU0YmEwNTY3YTBkZjk5MWEsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3lPVEF4TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

export default function App() {
    // Spreadsheet array of worksheets
    const spreadsheet = useRef();

    // Worksheet data
    const data = [
    [
        "Product",
        "A",
        "B",
        "C",
        "D",
        "E",
        "F"
    ],
    [
        "Sales",
        120,
        85,
        200,
        150,
        90,
        110
    ],
    [
        "Wrapped (3 cols)",
        "=WRAPROWS(B2:G2,3)"
    ],
    [
        "Wrapped (2 cols)",
        "=WRAPROWS(B2:G2,2)"
    ],
    [
        "With Padding",
        "=WRAPROWS(B2:E2,3,0)"
    ]
];

    // Render component
    return (
        <Spreadsheet ref={spreadsheet}>
            <Worksheet data={data} />
        </Spreadsheet>
    );
}
<template>
    <Spreadsheet ref="spreadsheet">
        <Worksheet :data="data" />
    </Spreadsheet>
</template>

<script>
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
import formula from "@jspreadsheet/formula-pro";

// Set license
jspreadsheet.setLicense('NjdlODZiZjVmODNlYjE0MzAwMWY1ODAxN2RlM2JlYmQ3ZmJlMjVhNDBiZDJhMjAxMWU0Yjc5OTE1MjNlZjE0YWE5ZmRlN2YwMWI3ZWUwMzllNTJkNGZiMWM2ZmEwNTgxOWM1MmIxZGFjNTI5Y2YxYmU0YmEwNTY3YTBkZjk5MWEsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3lPVEF4TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

export default {
    components: {
        Spreadsheet,
        Worksheet,
    },
    data() {
        // Worksheet data
        const data = [
    [
        "Product",
        "A",
        "B",
        "C",
        "D",
        "E",
        "F"
    ],
    [
        "Sales",
        120,
        85,
        200,
        150,
        90,
        110
    ],
    [
        "Wrapped (3 cols)",
        "=WRAPROWS(B2:G2,3)"
    ],
    [
        "Wrapped (2 cols)",
        "=WRAPROWS(B2:G2,2)"
    ],
    [
        "With Padding",
        "=WRAPROWS(B2:E2,3,0)"
    ]
]

        return {
            data
        };
    }
}
</script>
import { Component, ViewChild, ElementRef } from "@angular/core";
import jspreadsheet from "jspreadsheet";
import * as formula from "@jspreadsheet/formula-pro";

// Set your JSS license key (The following key only works for one day)
jspreadsheet.setLicense('NjdlODZiZjVmODNlYjE0MzAwMWY1ODAxN2RlM2JlYmQ3ZmJlMjVhNDBiZDJhMjAxMWU0Yjc5OTE1MjNlZjE0YWE5ZmRlN2YwMWI3ZWUwMzllNTJkNGZiMWM2ZmEwNTgxOWM1MmIxZGFjNTI5Y2YxYmU0YmEwNTY3YTBkZjk5MWEsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpVMk56a3lPVEF4TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2lkMlZpSWl3aWJHOWpZV3hvYjNOMElsMHNJbkJzWVc0aU9pSXpOQ0lzSW5OamIzQmxJanBiSW5ZM0lpd2lkamdpTENKMk9TSXNJbll4TUNJc0luWXhNU0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owWlhJaUxDSmlZWElpTENKMllXeHBaR0YwYVc5dWN5SXNJbk5sWVhKamFDSXNJbkJ5YVc1MElpd2ljMmhsWlhSeklpd2lZMnhwWlc1MElpd2ljMlZ5ZG1WeUlpd2ljMmhoY0dWeklpd2labTl5YldGMElsMHNJbVJsYlc4aU9uUnlkV1Y5');

// Set the extensions
jspreadsheet.setExtensions({ formula });

@Component({
    standalone: true,
    selector: "app-root",
    template: `<div #spreadsheet></div>`
})
export class AppComponent {
    @ViewChild("spreadsheet") spreadsheet: ElementRef;
    // Worksheets
    worksheets: jspreadsheet.worksheetInstance[];

    // Create a new data grid
    ngAfterViewInit() {
        // Create spreadsheet
        this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
            worksheets: [{
                data: [
    [
        "Product",
        "A",
        "B",
        "C",
        "D",
        "E",
        "F"
    ],
    [
        "Sales",
        120,
        85,
        200,
        150,
        90,
        110
    ],
    [
        "Wrapped (3 cols)",
        "=WRAPROWS(B2:G2,3)"
    ],
    [
        "Wrapped (2 cols)",
        "=WRAPROWS(B2:G2,2)"
    ],
    [
        "With Padding",
        "=WRAPROWS(B2:E2,3,0)"
    ]
]
            }]
        });
    }
}