如何用Google Apps Script设置Google Sheets选中行指定列的打印?
Google Sheets 宏实现选中行指定列打印
你需要修改宏来定位目标列(A=1、B=2、J=10、S=19),并将这些列的内容整理后打印。直接打印分散的列不太方便,这里可以创建一个临时工作表,把选中行的目标列数据复制进去,打印完成后删除临时表,避免干扰原数据:
function printSelectedRowColumns() { // 获取当前活动表格和工作表 var spreadsheet = SpreadsheetApp.getActive(); var sheet = spreadsheet.getActiveSheet(); // 获取当前选中单元格所在的行号 var rowNum = spreadsheet.getCurrentCell().getRow(); // 定义需要打印的列索引(A=1、B=2、J=10、S=19) var targetColumns = [1, 2, 10, 19]; // 创建临时工作表用于打印 var tempSheet = spreadsheet.insertSheet("PrintTemp"); // 遍历目标列,复制对应行的数据到临时表 targetColumns.forEach(function(colIndex, i) { var sourceCell = sheet.getRange(rowNum, colIndex); var destCell = tempSheet.getRange(1, i+1); sourceCell.copyTo(destCell, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false); // 可选:复制原单元格格式,不需要可以删掉这行 sourceCell.copyTo(destCell, SpreadsheetApp.CopyPasteType.PASTE_FORMAT, false); }); // 设置打印参数(可根据需求调整) var printSettings = tempSheet.getPrintSettings(); printSettings.setPaperSize(SpreadsheetApp.PrintPaperSize.A4); printSettings.setOrientation(SpreadsheetApp.PrintOrientation.PORTRAIT); // 执行打印 spreadsheet.setActiveSheet(tempSheet); SpreadsheetApp.getUi().print(); // 打印完成后删除临时工作表 spreadsheet.deleteSheet(tempSheet); }
注意事项
- 运行宏前确保当前有选中单元格(任意单元格都能定位到所在行)
- 如果不需要复制格式,可删除代码中复制格式的那一行
- 打印设置可以根据自己的需求调整(比如纸张大小、横向/纵向)
内容的提问来源于stack exchange,提问作者ali dehqani
相关产品推荐
相关产品推荐

