使用此腳本,我可以將電子表格匯出到 excel 檔案中。
現在我只想將電子表格從 A 列匯出到 J 列,并將公式僅保留在單元格中:A3、C3、F3、G3、H3、F5、G5、H5。
excel 檔案的所有其他單元格必須是純文本。
我該如何繼續?
function onOpen(e) {
SpreadsheetApp.getUi()
.createMenu('Custom')
.addItem('Download as XLSX', 'downloadXLS_GUI')
.addToUi();
}
function downloadXLS_GUI() {
var sh = SpreadsheetApp.getActiveSheet();
var nSheet = SpreadsheetApp.create(sh.getName() ": copy");
var d = sh.getDataRange();
nSheet.getSheets()[0].getRange(1,1,d.getLastRow(),d.getLastColumn()).setValues(d.getValues());
var URL = 'https://docs.google.com/spreadsheets/d/' nSheet.getId() '/export?format=xlsx';
var htmlOutput = HtmlService
.createHtmlOutput('<a href="' URL '">Clicca qui per scaricare</a>')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(380)
.setHeight(160);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Scarica Allegato 2 in Excel');
}
uj5u.com熱心網友回復:
解決方案:
- 定義源和目標范圍時,不要使用
getDataRange()(包括所有作業表資料),而是使用 getRange(row, column, numRows, numColumns),其中numColumnsis10(對應于 columnJ)。 - 設定所有值后,使用getFormulas和setFormulas在所需單元格上設定公式。
代碼示例:
function downloadXLS_GUI() {
var sh = SpreadsheetApp.getActiveSheet();
var nSheet = SpreadsheetApp.create(sh.getName() ": copy");
var numCols = 10;
var d = sh.getRange(1,1,sh.getLastRow(),numCols);
nSheet.getSheets()[0].getRange(1,1,sh.getLastRow(),numCols).setValues(d.getValues());
["A3", "C3", "F3", "G3", "H3", "F5", "G5", "H5"].forEach(a1Notation => {
var sourceFormulas = sh.getRange(a1Notation).getFormulas();
nSheet.getRange(a1Notation).setFormulas(sourceFormulas);
});
var URL = 'https://docs.google.com/spreadsheets/d/' nSheet.getId() '/export?format=xlsx';
var htmlOutput = HtmlService
.createHtmlOutput('<a href="' URL '">Clicca qui per scaricare</a>')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(380)
.setHeight(160);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Scarica Allegato 2 in Excel');
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/443765.html
下一篇:IF陳述句不一致
