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

如何在Workshop中展示TypeScript函数返回的3D聚合对象为表格?

Workshop自定义聚合结果的表格展示解决方案

方案1:转结构化数据+自定义React表格组件

  • 先把3D聚合对象扁平化处理成Workshop函数允许返回的结构化数据,比如包含表头和数据行的对象:
    // 示例:适配你的3D聚合结构,提取表头和数据行
    function convert3DToTableData(aggData: any[][][]): { headers: string[], rows: string[][] } {
      // 从3D结构里提取表头(逻辑根据你的实际数据调整)
      const headers = aggData[0].map(col => col[0].displayName || col.key);
      // 扁平化数据行,把嵌套的聚合值转成可展示的单元格内容
      const rows = aggData.slice(1).map(rowGroup => 
        rowGroup.map(cell => cell.aggregatedValue.toString())
      );
      return { headers, rows };
    }
    
  • 在Workshop里创建自定义组件,用React写一个表格渲染逻辑,接收上述结构化数据:
    export default function CustomAggTable({ headers, rows }) {
      return (
        <table style={{ borderCollapse: 'collapse', width: '100%', margin: '16px 0' }}>
          <thead>
            <tr>
              {headers.map((header, idx) => (
                <th key={idx} style={{ padding: '8px', border: '1px solid #eee', background: '#f5f5f5' }}>
                  {header}
                </th>
              ))}
            </tr>
          </thead>
          <tbody>
            {rows.map((row, rowIdx) => (
              <tr key={rowIdx}>
                {row.map((cell, cellIdx) => (
                  <td key={cellIdx} style={{ padding: '8px', border: '1px solid #eee' }}>
                    {cell}
                  </td>
                ))}
              </tr>
            ))}
          </tbody>
        </table>
      );
    }
    
    把处理后的headers和rows传给这个组件,就能渲染出标准表格。

方案2:转纯文本表格+文本组件展示

如果没法用自定义组件,就把聚合数据转成等宽纯文本表格,用Workshop的文本组件展示(记得开等宽字体):

function convertToTextTable(aggData: any[][][]): string {
  // 定义列宽,按需调整
  const colWidth = 18;
  // 生成表头行
  const headers = aggData[0].map(col => (col[0].displayName || col.key).padEnd(colWidth)).join('');
  // 生成分隔线
  const divider = '-'.repeat(colWidth * aggData[0].length) + '\n';
  // 生成数据行
  const rows = aggData.slice(1).map(rowGroup => 
    rowGroup.map(cell => cell.aggregatedValue.toString().padEnd(colWidth)).join('')
  ).join('\n');
  
  return headers + '\n' + divider + rows;
}

返回这个字符串给文本组件,设置字体为Consolas或Monaco这类等宽字体,就能得到对齐的纯文本表格。

核心注意事项

  • 严格遵守Workshop函数返回类型限制:别直接返回多维数组,转成{headers: string[], rows: string[][]}或者纯文本这类支持的类型。
  • 自定义组件需要你的Workshop环境允许创建React组件,要是权限受限,方案2是快速替代方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:47:36