
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
google-spreadsheet
Advanced tools
Google Spreadsheet Data API for Node.js -- can read, write, edit, and delete rows
The google-spreadsheet npm package allows you to interact with Google Sheets through the Google Sheets API. It provides a simple and intuitive way to read, write, and manage Google Sheets data programmatically.
Authentication
This feature allows you to authenticate with the Google Sheets API using either service account credentials or OAuth2 tokens.
const { GoogleSpreadsheet } = require('google-spreadsheet');
const doc = new GoogleSpreadsheet('<spreadsheet-id>');
// Using service account credentials
await doc.useServiceAccountAuth(require('./path/to/credentials.json'));
// OR using OAuth2 tokens
await doc.useOAuth2Client(oAuth2Client);
Loading a Spreadsheet
This feature allows you to load the spreadsheet's metadata and worksheets, making it possible to interact with the spreadsheet's structure and data.
await doc.loadInfo(); // loads document properties and worksheets
console.log(doc.title);
Reading Rows
This feature allows you to read rows from a specific sheet within the spreadsheet. You can access individual cell values and iterate through the rows.
const sheet = doc.sheetsByIndex[0]; // or use doc.sheetsById[id]
const rows = await sheet.getRows(); // can pass in { limit, offset }
console.log(rows[0].name);
Adding Rows
This feature allows you to add new rows to a sheet within the spreadsheet. You can specify the values for each column in the new row.
await sheet.addRow({ name: 'John Doe', email: 'john.doe@example.com' });
Updating Cells
This feature allows you to update the values of specific cells in a row and save the changes back to the spreadsheet.
const row = rows[0];
row.name = 'Jane Doe';
await row.save();
The googleapis package is a comprehensive library for interacting with various Google APIs, including the Google Sheets API. It provides more extensive functionality beyond just Google Sheets, but it requires more setup and configuration compared to google-spreadsheet.
The gsheets package is a lightweight library for accessing Google Sheets data. It offers basic functionalities for reading and writing data but lacks some of the advanced features and ease of use provided by google-spreadsheet.
The g-sheets-api package is designed for simple and quick access to Google Sheets data. It is less feature-rich compared to google-spreadsheet but can be a good choice for straightforward use cases where minimal setup is desired.
FAQs
Google Sheets API -- simple interface to read/write data and manage sheets
The npm package google-spreadsheet receives a total of 231,886 weekly downloads. As such, google-spreadsheet popularity was classified as popular.
We found that google-spreadsheet demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.