Adding an EOL characters to string sent to Smartsheet via Update Row(s) API call

271 views Asked by At

While using the Smartsheet GUI I can add and EOL character using a MAC with a Command-Enter key sequence in a give text cell to have text roll to the next line. Using the Python SDK, while appending cells to the row object I set the cell value to a string which contains one to several '\n' characters between other characters. When I make the add_row API call it works fine but the cells in the new row do not contain the EOL characters and therefore everything is serialized without line breaks. Is there another character that I need to use to have smartsheet read the EOL? Thanks.

1

There are 1 answers

0
Kim Brandl On

Adding \n to cell contents should result in a line break -- but you won't actually see the line break rendered in the sheet itself (i.e., via the GUI) unless the "line wrap" setting is enabled for that cell.

For example, if I execute a Get Row API request for the first row in my test sheet, I can see in the response that the cell in Row 1, Column 2 contains a line break: \n.

{
  "id": 852336548571012,
  "sheetId": 622152891295620,
  "rowNumber": 1,
  "version": 5,
  "expanded": true,
  "accessLevel": "OWNER",
  "createdAt": "2016-12-23T02:03:03Z",
  "modifiedAt": "2016-12-23T02:12:05Z",
  "cells": [
    {
      "columnId": 3027406131881860,
      "value": "Test data",
      "displayValue": "Test data"
    },
    {
      "columnId": 7531005759252356,
      "value": "this is line #1\nthis is line #2",
      "displayValue": "this is line #1\nthis is line #2"
    }
  ]
}

Now, if I examine that sheet via the GUI, and the "line wrap" setting is enabled for that cell, the line break will be rendered:

enter image description here

However, if I examine the sheet via the GUI, and the "line wrap" setting is disabled for that cell, the line break will not be rendered:

enter image description here

Therefore, I'd suggest that you verify that the "line wrap" setting is enabled for the cell(s) in the sheet where you're wanting to see line breaks.

If you're still not seeing the line breaks via the GUI (even with the "line wrap" setting enabled), then I'd suggest you execute a Get Row (or Get Sheet) request for the row (or sheet) in question, and examine cell contents to ensure that the \n is actually included in cell contents. If you're using the Python SDK to include \n in cell contents, but you're not seeing the \n for the cell in the Get Row (or Get Sheet) response, then that might indicate a bug with the SDK.