writes data into a notebook at the current selection, setting the current selection to be just after the data written.


replaces the given cell or box object instead of the current selection.


writes data into a notebook, setting the current selection to be as specified by sel.


writes data into the specified location relative to obj.

Details and Options

  • The first argument of NotebookWrite can be a NotebookObject, CellObject, or BoxObject.
  • NotebookWrite to a NotebookObject does essentially the same as a Paste operation in the front end: it replaces whatever the current selection in the notebook is by data.
  • NotebookWrite to a CellObject or BoxObject replaces the given cell or box with the specified content. If no third argument is specified and the selection is not inside the cell, it does this without disturbing the current selection.
  • NotebookLocationSpecifier[obj,location] specifies that the notebook should write data to a location relative to the CellObject or BoxObject obj. Possible settings for location are:
  • "After"write data after the object
    "AfterContent"append data to the contents of the object
    "Before"write data before the object
    "BeforeContent"prepend data to the contents of the object
    "On"overwrite the object
  • NotebookWrite is the basic way to use the Wolfram Language kernel to modify the contents of notebooks that are being manipulated by the front end.
  • NotebookWrite automatically wraps Cell around the data you specify if this is necessary.
  • Possible settings for sel are:
  • Afterplace the current selection immediately after the data written
    Allmake the current selection be the data written
    Beforeplace the current selection immediately before the data written
    Noneleave the current selection unchanged
    Placeholdermake the current selection be the first placeholder in the data written
  • The default for sel is After, so that NotebookWrite[obj,data] can be called repeatedly to insert several pieces of data in sequence.


open allclose all

Basic Examples  (1)

Create an empty notebook and write a cell:

Write another cell and select it:

Scope  (4)

Overwrite an existing cell:

Display a button that replaces itself when clicked:

NotebookLocationSpecifier  (2)

Display a button that writes content to a new cell above the cell containing the button:

Display a button that adds a random digit immediately after the button when clicked:

Add the content inside of the button instead of next to it:

Options  (1)

AutoScroll  (1)

First create an empty sample notebook to operate on:

Write a tall cell expression to the sample notebook and the scroll position remains at the top:

Properties & Relations  (1)

Use NotebookWrite to write over a selected part of the document:

Or use NotebookPut to replace the full contents:

Wolfram Research (1996), NotebookWrite, Wolfram Language function, (updated 2023).


Wolfram Research (1996), NotebookWrite, Wolfram Language function, (updated 2023).


Wolfram Language. 1996. "NotebookWrite." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023.


Wolfram Language. (1996). NotebookWrite. Wolfram Language & System Documentation Center. Retrieved from


@misc{reference.wolfram_2024_notebookwrite, author="Wolfram Research", title="{NotebookWrite}", year="2023", howpublished="\url{}", note=[Accessed: 20-June-2024 ]}


@online{reference.wolfram_2024_notebookwrite, organization={Wolfram Research}, title={NotebookWrite}, year={2023}, url={}, note=[Accessed: 20-June-2024 ]}