user1410772
user1410772

Reputation: 33

Convert Google Sheets to .xls

Would anyone have any pointers as to how to convert a Google sheets file to a .xls file through Google App Script?

Many thanks

Here's what I theorized, but the logic is flawed. I've also attempted the Blobs approach as well and it seems most files are defaulted to application/pdf.

function gs2xls() {
  var gSheets = DocsList.getFilesByType('spreadsheet');
  for(var i = 0; i < gSheets.length; i++){
    var gSheetFile = gSheets[i]; //File
    var gSheetSS = SpreadsheetApp.open(gSheetFile); //Spreadsheet of gs file
    var gSheet = gSheetSS.getActiveSheet();
    var xlsSS = SpreadsheetApp.create(gSheetFile.getName() + ".xls");
    xlsSS.setActiveSheet(gSheet);
  }  
}

Upvotes: 0

Views: 823

Answers (2)

Serge insas
Serge insas

Reputation: 46822

Google Apps Script can't export anything else than pdf natively but the document API does so you can use urlFetch with parameters to get what you want.

The code is shown with explanations in this post : Google apps script to email google spreadsheet excel version

It works pretty well.

Upvotes: 1

Zig Mandel
Zig Mandel

Reputation: 19864

That approach will never work because: 1) You are creating and empty google spreadsheet, not a file of type xls. 2) you are setting as active sheet an invalid sheet (from another spreadsheet whivh is not what setactivesheet does).

The most you will be able to achieve is to show the user an export link that downloads the file as xls. Google how to make the export link.

Upvotes: 0

Related Questions