如何用Google Scripts将Google Sheets含单元格内部分格式的表格复制到Google Docs
实现Google Sheets表格到Google Docs的完整格式保留(含单元格内部分文本格式)
原生复制粘贴或仅处理整单元格格式的方案无法保留单元格内部分文本的差异化格式(比如部分文字变色、加粗),可以通过Google Apps Script实现完整格式迁移,以下是具体方案:
步骤1:编写Apps Script脚本
打开你的Google Sheet,点击「扩展程序」→「Apps Script」,清空默认代码,粘贴以下脚本:
function copyRichTextTableToDoc() { // 配置参数 const SHEET_NAME = "Sheet1"; // 替换为你的Sheet名称 const RANGE = "A1:C5"; // 替换为要复制的表格区域 const DOC_ID = "你的Google Docs ID"; // 替换为目标Docs的ID(从URL中提取) // 获取Sheet数据和Docs文档 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME); const range = sheet.getRange(RANGE); const values = range.getValues(); const richTexts = range.getRichTextValues(); const doc = DocumentApp.openById(DOC_ID); const body = doc.getBody(); // 在Docs中创建对应行列的表格 const table = body.appendTable(values); // 遍历每个单元格,应用富文本格式 for (let row = 0; row < richTexts.length; row++) { for (let col = 0; col < richTexts[row].length; col++) { const cellRichText = richTexts[row][col]; const docCell = table.getCell(row, col); // 清空单元格原有内容,重新添加富文本 docCell.clear(); const text = docCell.editAsText(); text.setText(cellRichText.getText()); // 逐个字符应用格式 const runs = cellRichText.getRuns(); let startIndex = 0; runs.forEach(run => { const textLength = run.getText().length; const endIndex = startIndex + textLength; // 应用字体样式 text.setFontFamily(startIndex, endIndex - 1, run.getFontFamily()); text.setFontSize(startIndex, endIndex - 1, run.getFontSize()); text.setBold(startIndex, endIndex - 1, run.isBold()); text.setItalic(startIndex, endIndex - 1, run.isItalic()); text.setUnderline(startIndex, endIndex - 1, run.isUnderline()); // 应用文本颜色 const foregroundColor = run.getForegroundColorObject(); if (foregroundColor) { text.setForegroundColor(startIndex, endIndex - 1, foregroundColor.asRgbColor()); } startIndex = endIndex; }); } } // 保存文档 doc.saveAndClose(); }
步骤2:配置脚本参数
修改脚本中的3个核心参数:
SHEET_NAME:填写你要复制表格所在的Sheet标签名(比如"数据表格")RANGE:填写要复制的单元格区域(比如"B2:D10")DOC_ID:打开目标Google Docs,从URL中提取ID(URL格式为https://docs.google.com/document/d/【这里就是DOC_ID】/edit)
步骤3:运行脚本并授权
- 点击脚本编辑器顶部的「保存」按钮,给脚本命名(比如"CopyRichTextTable")
- 点击「运行」按钮,首次运行会触发权限授权,按照提示完成授权(需要允许脚本访问你的Sheet和Docs)
- 运行完成后,打开目标Google Docs即可看到完整保留格式的表格
说明
这个脚本会逐个读取Sheet单元格中的富文本格式(包括部分文字的颜色、加粗、斜体、字体大小等),并完整复刻到Docs的表格单元格中,解决了单元格内部分格式无法保留的问题。如果需要复制动态选择的区域,可以进一步修改脚本添加自定义菜单,但基础版本已能满足大部分场景需求。
内容的提问来源于stack exchange,提问作者macdonaldmark979
相关产品推荐
相关产品推荐

