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

如何导出Google Sheets数据时保留富文本格式(如斜体)?

解决Google Sheets导出保留斜体格式的方法

核心思路

valueRenderOption: 'FORMATTED_VALUE'仅能获取纯文本内容,无法提取格式元数据。要保留斜体格式,需通过Google Sheets API获取单元格的格式信息,再自行转换为Markdown或HTML格式。

具体实现步骤(基于googleapis npm模块)

  1. 调整API请求参数
    调用sheets.spreadsheets.get时,开启includeGridData: true,并通过fields指定返回格式相关字段,减少冗余数据传输:

    const { data } = await sheets.spreadsheets.get({
      spreadsheetId: '你的表格ID',
      ranges: ['目标工作表范围'], // 例如'Sheet1!A1:C10'
      includeGridData: true,
      fields: 'sheets.data.rowData.values(userEnteredFormat.textFormat.italic, userEnteredValue.stringValue)'
    });
    
  2. 解析格式并转换为目标格式
    遍历返回的单元格数据,根据userEnteredFormat.textFormat.italic标记判断斜体状态,将内容包裹为对应格式:

    // 转换为Markdown示例
    const markdownRows = [];
    data.sheets[0].data[0].rowData.forEach(row => {
      const markdownCells = row.values.map(cell => {
        const text = cell.userEnteredValue.stringValue;
        const isItalic = cell.userEnteredFormat?.textFormat?.italic;
        return isItalic ? `*${text}*` : text;
      });
      markdownRows.push(markdownCells.join('|'));
    });
    console.log(markdownRows.join('\n'));
    
    // 转换为HTML示例
    const htmlRows = [];
    data.sheets[0].data[0].rowData.forEach(row => {
      const htmlCells = row.values.map(cell => {
        const text = cell.userEnteredValue.stringValue;
        const isItalic = cell.userEnteredFormat?.textFormat?.italic;
        return isItalic ? `<td><em>${text}</em></td>` : `<td>${text}</td>`;
      });
      htmlRows.push(`<tr>${htmlCells.join('')}</tr>`);
    });
    console.log(`<table>${htmlRows.join('\n')}</table>`);
    
  3. 额外注意事项

    • 若单元格包含换行、特殊字符(如Markdown的星号、HTML的<>&),需额外做转义处理
    • 如需支持粗体、颜色等其他格式,可扩展fields参数和转换逻辑

内容的提问来源于stack exchange,提问作者bosey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:28:13