npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

smartsheet-delete-bulk-rows

v0.0.1

Published

Delete large groups of rows from a sheet based on a given value being found in the row

Downloads

4

Readme

Smartsheet Delete Bulk Rows

Delete large groups of rows from a sheet based on a given value being found in the row

Example: Delete every row in a sheet where the Status column is set to Complete.

NOTE: This module requires the Smartsheet Javascript SDK and is meant to be used alongside it.

Deleting collections of rows can be problematic with the Smartsheet API. The row ids are appended as query strings to the request:

DELETE /sheets/{sheetId}/rows?ids={rowId1},{rowId2},{rowId3}

There can be issues when needing to delete hundreds of rows in a sheet as you can easily get beyond the max characters for a URL.

This module solves this by:

  1. Getting the current sheet data.
  2. Searching through the rows to find matches with the given value.
  3. Making the first found row a parent of all of the subsequent found rows by indenting them under it.
  4. Deleting the new parent row.

When a parent row (a row with at least one other row indented under it) in Smartsheet all of its child rows are deleted as well. By indenting the rows one can delete hundreds of rows from a sheet by making only three requests to the Smartsheet API instead of possibly making several requests, batching up row ids for deletion. This can help to stay under rate limits as well as increase performance of your process with the Smartsheet API.

Installation

npm install smartsheet-delete-bulk-rows

Usage

//Assumes smartsheetClient has been instantiated elsewhere already

const deleteBulkRows = require('smartsheet-delete-bulk-rows');

const options = {
    sheetId: 4583173393803140,
    columnId: 2331373580117892,
    deleteValue: 'Complete'
};

deleteBulkRows(smartsheetClient, options)
 .then((results) => {
     console.log(results);
     })
 .catch((err) => {
     console.log(err)
 });

Arguments

The function takes two arguments, your Smartsheet client object and an options object.

smartsheetClient

This module is used alongside the Smartsheet Javascript SDK. Pass in your current Smartsheet client object for use in the requests.

options

options.sheetId

The id of the sheet you are deleting rows from

options.columnId

The id of the column to look for that will have the value to decide if the row is deleted or not.

options.deleteValue

The value to search for in the sheet. A match determines that a row should be deleted.