You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:10:29