2015-03-02 83 views
1

是否可以使用Google腳本從Google工作表創建Excel格式文件,以便它可以作爲附件添加到電子郵件中?通過谷歌腳本以ms Excel格式創建附件通過Google腳本

我有一個代碼,它需要某些名稱(例如A,C,F)的列,並將它們變成一個新表(在createCustomStatusTable()函數上)。 https://docs.google.com/spreadsheets/d/1fZ0JMYjoIrfPIxFBVgDNU0x5X0ll201ZCU-lcaTwwcI/edit?usp=sharing

var expected = ['A','C','F']; 
var newSpreadSheet = SpreadsheetApp.getActiveSheet(); 
var tableLastRow = newSpreadSheet.getLastRow(); 
var tablelastColumn = newSpreadSheet.getLastColumn(); 
var values = newSpreadSheet.getRange(1, 1, tableLastRow, tablelastColumn).getValues(); 
var rangeToCopy = []; 

function in_array(value, array) 
{ 
    for(var i = 0; i < array.length; i++) 
    { 
     if(array[i] == value) return true; 
    } 
    return false;; 
}; 
function columnsCount() { 
    var count = 1; 
    for (var i = 0; i < SpreadsheetApp.getActiveSheet().getLastColumn(); i++) { 
    if (in_array(values[0][i],expected)) 
     count++; 
    } 
    return count; 
}; 
function returnRange() { 
    for (var i = 1; i < SpreadsheetApp.getActiveSheet().getLastColumn()+1; i++) { 
    if (in_array(values[0][i-1],expected)) { 
     rangeToCopy.push(newSpreadSheet.getRange(1, i, newSpreadSheet.getMaxRows())); 
    };  
    }; 
    return rangeToCopy; 
}; 

function createCustomStatusTable() { 
var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Target'); 
for (var i = 1; i < columnsCount(); i++) { 
     returnRange()[i-1].copyTo(targetSheet.getRange(1,i)); 
    }; 
}; 

預先感謝您的任何幫助

回答

0

您可以創建DriveApp一個EXCEL文件類型:

DriveApp Excel Type

的問題是,該content必須是字符串。而且我還沒有測試過這種工作方式。

我知道這並不能回答你的問題。希望有人知道如何從Google表創建一個EXCEL文件。

+0

我需要這樣的[鏈接](https://gist.github.com/ixhd/3660885),但以Excel格式.xlsx。可能嗎? – 2015-03-03 12:22:28