Paste from Clipboard to Table

Hello!

We're building basic tools for our CX team and a common thing we run into is pasting a list of IDs from the clipboard to Google Sheets. The kicker is that everyone gets their list of IDS in different ways (excel, sheets, copying from table online, etc), so we can't really centralize all the lists to a single sheet.

The easiest method would be to allow us to paste a list of data into new rows in a table within Retool itself. Like this (but pretend the table is in retool): Screen Recording 2021-08-26...

5 Likes

This would be great.

1 Like

Bumping this, it'd be super helpful! It would be great if users could paste little snippets into tables without having to download/upload CSVs.

Hey all!

While I don't believe there is a native way to do this, after some testing it looks like when copying data from a spreadsheet, each row is separated by a newline character "\n" and each field is separated by a tab. I'm not sure if there would be a way to get the column names but you could use a text input for users to paste the data, and then transform it with some code like this:\

return {{ textArea1.value.split("\n").map(row=>{
  let rowObj = {}
  row.split("	").forEach((item, idx)=> rowObj[idx]=item)
  return rowObj;
}) }}

This would put the pasted content into the array of objects format. You could then use the results of this transformer in a table component. Do you think something like this could work for your use case here?

2 Likes

copy/paste is something which is integral to our current workflow in Google Sheets / Excel which we are currently migrating to Retool.

Whether it's pasting from other/external tables or dragging down data from a single row to multiple rows

I wonder if there's a simple solution to this.

Hey @Eden — This is a pretty common ask and a great feature request, I've gone ahead and linked an internal feature request to this thread so we can keep you up to date as a feature is added. In the meantime, depending on the finer details of your use case, one potentially good option here could be to connect your Google Sheets as a resource and use javascript to parse data. If you are looking to import data from an Excel spreadsheet, you can also export that as a CSV and insert it into a Retool table or DB by following this guide from our docs. Do you think this could work for your use case here?

Hey @Chris-Thompson
Thank you for your help.
linking sheets isn't an option as it's granular data points rather than specific sheets we need to sync.

In terms of using the import tool, this may be an option in some cases, but it doesn't solve our day to day interaction with Tables as it involves a lot of external data and repeat data which could just be copy/pasted between cells rather than writing it out manually.

I hope that the timeline for the feature request isn't too far out.

Ah I see, that makes sense. Are you looking to upload these specific granular data points to a DB? Retool also comes pre-packaged with the Papa.parse library we may be able to leverage for your use case.

Yes,
I'm looking to interact with existing graphql or sql data within a table.
I'm looking to add additional rows of data to it and override existing data within the same table in bulk (as they would do in excel)

A sample scenario would be overriding 10 rows in a column by selecting them and pasting "A", overriding "B"

I see, that makes sense. I don't think there is an easy workaround for that use case at the moment but will definitely keep you updated here as our engineers tackle the attached feature request. Thank you for the feedback!

1 Like