使用工作脚本更新
我在确定如何隐藏行范围方面有点困难。 我还注意到我没有使用更新的api来发送消息。
UiApp API is deprecated.Expand
File: PrintOrder Line: 28
Anchor API is deprecated.Expand
File: PrintOrder Line: 31
UiInstance API is deprecated.Expand
File: PrintOrder Line: 28
我有一张工作表(“printOrder”从工作表中提取数据(“salesOrder”)
我的计划是将脚本链接到打印或导出到PDF printOrder的salesOrder上的按钮。
现在我想隐藏第41行到第76行之间没有填充的空行。到目前为止,这是我的错误脚本:
function printOrder() {
SpreadsheetApp.flush();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("printOrder");
var gid = sheet.getSheetId();
//start number Row, start number Column, number of Rows , number of Columns
var range = sheet.getRange(41, 1, 36,10);
//get the values to those rows
var values = range.getValues();
Logger.log(values)
for (var i=0; i<values.length; i++) {
if(values[i][0] === ""){
sheet.hideRow(sheet.getRange(i+41,1));1
}
}
// Getting 'name' for PDF from Cell G5
var name = sheet.getRange("G5").getValue()+".pdf";
// setting output options
var pdfOpts = '&size=letter' +
'&fzr=true'+
'&portrait=true'+
'&fitw=true'+
'&gridlines=false'+
'&printtitle=false'+
'&sheetnames=false'+
'&pagenum=CENTER'+
'&attachment=false'+
'&gid=';
// retrieving url to link for download of pdf
var url = ss.getUrl().replace(/edit$/, '') +
'export?exportFormat=pdf&format=pdf' +
pdfOpts +
sheet.getSheetId();
// simple ui popup to allow user to click-download pdf
var app = UiApp.createApplication().setWidth(200).setHeight(50);
app.setTitle('Print this sheet');
var link = app.createAnchor('Download PDF', url).setTarget('_new');
app.add(link);
ss.show(app);
}
感谢您的指导。
干杯,
火星
答案 0 :(得分:1)
在零处启动i
,然后当您使用hideRows()
方法时,您需要向我添加41以隐藏正确的行:
sheet.hideRows(i+41);
我认为这一行有一个问题:
for (var i=41; i<values.length; i++) {
values
数组在数组索引零中包含第41行数据。您可以使用values
语句打印Logger.log('array: ' + array);
数组的内容。添加Logger语句,运行代码,然后在VIEW菜单中选择LOGS。
从第41行开始检索值的范围,但要遍历数据,i
需要从零开始。
for (var i=0; i<values.length; i++) {
你可以用你想要的任何数字开始计数器编号,但是你需要减去那个数字以便在第一个循环中变为零。
var thisLoopValue;
for (var i=41; i<values.length; i++) {
thisLoopValue = values[i-41]; //On the first iteration, index needs to be zero. 41 - 41 is zero