首页 > 解决方案 > 谷歌表格/应用程序脚本 - 单元格内带有文本的 SetRowHeight

问题描述

刚刚发现我无法将给定行的高度设置为低于单元格内文本高度的高度值。

sheet.setRowHeight(1, 5) 如果单元格为空则有效,但如果文本(例如字体大小 8)在内部则无效。似乎单元格已调整为文本高度。

是否可以覆盖它(特别是因为填充似乎应用在文本的顶部和底部)?

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-api

解决方案


我相信你的目标如下。

  • 您想通过使用 Google Apps 脚本忽略字体大小来设置行高。

问题和解决方法:

不幸的是,在当前阶段,当setRowHeight使用电子表格服务时,最小行高似乎取决于字体大小。所以在这种情况下,作为解决方法,我想建议使用 Sheets API。在此解决方法中,UpdateDimensionPropertiesRequest使用了 Sheets API 中的“spreadsheets.batchUpdate”方法。

示例脚本:

在使用此脚本之前,请在 Advanced Google services 中启用 Sheets API

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("Sheet1");  // Please set the sheet name.

  const requests = {updateDimensionProperties: {
    properties: {pixelSize: 5},
    range: {sheetId: sheet.getSheetId(), startIndex: 1, endIndex: 2, dimension: "ROWS"},
    fields: "pixelSize"
  }};
  Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId());
}
  • 在此示例脚本中,第 2 行的行高更改为 5 个像素。在这种情况下,行高不取决于字体大小。

参考:


推荐阅读