When I download a spreadsheet from a report, can I include the Report's name in the title of the .csv so I can trace it?

  • 0
  • 1
  • Question
  • Updated 5 months ago
  • Answered
Photo of Abigail Crites

Abigail Crites

  • 70 Points
  • frustrated

Posted 1 year ago

  • 0
  • 1
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 30,224 Points 20k badge 2x thumb
You can use script to download a file or blob of data and force its name. See the attached screenshot where I download all the records in the formula function reference and give it a name myreport.csv:




Pastie Database
https://haversineconsulting.quickbase.com/db/bgcwm2m4g?a=dr&rid=651

So all you have to do is bind this script to a button and arrange to pass the name you want for the file.
Photo of Forrest Parker

Forrest Parker

  • 1,332 Points 1k badge 2x thumb
Dan, I was able to implement this solution exactly as you presented it and it works great!  However, I would like to create a CSV in this manner without the column headers.  Is that something that is easily done?
Photo of Ⲇanom the ultimate (Dan Diebolt)

Ⲇanom the ultimate (Dan Diebolt), Champion

  • 30,224 Points 20k badge 2x thumb
The variable csv is just a string with newlines separating each row.

This will probably work:
    var csv2 = csv.split('\n').slice(1).join('\n');
    download("myuniquefile.csv", csv2);
Very simple console test:
csv="a,b\n1,2\n3,4"
"a,b
1,2
3,4"
csv.split('\n').slice(1).join('\n');
"1,2
3,4"


Photo of Forrest Parker

Forrest Parker

  • 1,332 Points 1k badge 2x thumb
Perfect!  That is exactly what I needed.  Thanks!
Photo of Forrest Parker

Forrest Parker

  • 1,332 Points 1k badge 2x thumb
Dan, is it possible to implement this in such a way that two separate files are created with the click of one button?
Photo of Ryan Stanford

Ryan Stanford

  • 1,498 Points 1k badge 2x thumb
Absolutely, you would just need to set a different file name and rerun the CSV creation code like so:

$.get("https://login.quickbase.com/db/6ewwzuuj?a=q&qid=1&opts=csv")
  .then(function(csv) {
    download("myuniquefile.csv", csv);
  });

$.get("https://login.quickbase.com/db/<SecondDBID if from a different table>?a=q&qid=<second Query ID>&opts=csv")
  .then(function(csv) {
    download("myuniquefile2.csv", csv);
  });

The HTTPS: link would have to link to the second report you wanted.