Google Apps Script中PasteDataRequest如何按列粘贴而非按行粘贴
问题说明
现有脚本可正常执行值粘贴操作,但默认从指定坐标开始沿行横向粘贴内容,需调整为沿列纵向粘贴。
- 示例输入数据:
Car, cat, bat, rat - 当前横向粘贴效果:
| Car | cat | bat | rat |
- 期望纵向粘贴效果:
Car | ___ cat | ___ bat | ___ rat |
现有代码
var gridCoordinate = Sheets.newGridCoordinate() gridCoordinate.sheetID = sheet.getSheetID() gridCoordinate.rowIndex = "1" gridCoordinate.columnIndex = "1" let pasteRequest = Sheets.newPasteDataRequest() pasteRequest.data = inputValues pasteRequest.type = SpreadsheetApp.CopyPasteType.PASTE_VALUES pasteRequest.coordinate = gridCoordinate pasteRequest.delimiter = "," let requests = [Sheets.newRequest()] requests[0].pasteData = pasteRequest; let batchUpdateRequest = Sheets.newBatchUpdateSpreadsheetRequest(); batchUpdateRequest.requests = requests var result = Sheets.Spreadsheets.batchUpdate(batchUpdateRequest, "REDACTED") Logger.log(result)
约束说明:根据PasteDataRequest官方文档要求,
inputValues必须为逗号分隔的字符串。
实现方法
在PasteDataRequest配置中新增transpose属性,赋值为true即可。粘贴时API会自动转置拆分后的数据,原本横向排列的单行多列数据会转为纵向排列的单列多行,无需修改原始输入的逗号分隔格式,满足文档约束要求。
修改后的核心配置片段:
let pasteRequest = Sheets.newPasteDataRequest() pasteRequest.data = inputValues pasteRequest.type = SpreadsheetApp.CopyPasteType.PASTE_VALUES pasteRequest.coordinate = gridCoordinate pasteRequest.delimiter = "," pasteRequest.transpose = true // 新增该行,开启转置实现纵向粘贴
内容的提问来源于stack exchange,提问作者TIsConfused
相关产品推荐
相关产品推荐

