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)"
]
]
}]
});
}
}