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

PBCS Oracle中Groovy脚本导出CSV前新增列提取rowmbr1文本

解决方案:导出CSV前新增提取rowmbr1前缀的列

问题说明

需要在导出CSV前新增一列,提取rowmbr1字段的前缀文本(例如将“Sales staff”转为“Sales”,“Marketing staff”转为“Marketing”),并将该列置于rowmbr1列旁。

修改后的完整Groovy脚本

def povDims = [ Povdim1, povdim2]
def povMbrs = [['Povmbr1'], ['povmbr2']]
def colDims =  ['coldim'] 
def colMbrs = [ ['coldim1','coldim2'] ] // 补全缺失的闭合括号,修正语法错误
def rowDims = ['rowdim']
def rowMbrs = [ ['rowmbr1']]
 
Cube cube = operation.application.getCube("Plan")
DataGridDefinitionBuilder builder = cube.dataGridDefinitionBuilder()
builder.setSuppressMissingBlocks(true)
builder.setSuppressMissingRows(true)
builder.addPov(povDims, povMbrs)
builder.addColumn(colDims, colMbrs)
builder.addRow(rowDims, rowMbrs)

DataGridDefinition gridDefinition = builder.build()

cube.loadGrid(gridDefinition, false).withCloseable { grid ->
    // 定位rowmbr1列的索引位置
    def rowmbr1ColIndex = grid.columns.findIndexOf { it.name == 'rowmbr1' }
    
    // 在rowmbr1列右侧插入新列,自定义列名和显示标签
    grid.columns.add(rowmbr1ColIndex + 1, new DataGridColumn(name: "Department", label: "Department"))
    
    // 遍历所有行,提取rowmbr1前缀并填充新列
    grid.rows.each { row ->
        def rowmbr1Text = row.cells[rowmbr1ColIndex].value?.toString()
        if (rowmbr1Text) {
            // 按空格分割取第一个单词,适配"Xxx staff"格式
            def departmentPrefix = rowmbr1Text.split(' ')[0]
            row.cells.add(rowmbr1ColIndex + 1, new DataGridCell(value: departmentPrefix))
        } else {
            // 处理空值场景,填充空字符串
            row.cells.add(rowmbr1ColIndex + 1, new DataGridCell(value: ""))
        }
    }

    operation.exportDataToFile(grid, 'fullGridExport.csv')
}

关键修改说明

  • 语法修正:原脚本中colMbrs定义缺少闭合括号,补全后避免运行时抛出语法错误
  • 列位置定位:通过findIndexOf精准定位rowmbr1列的位置,确保新列插入到目标列旁
  • 新增列定义:使用DataGridColumn创建自定义列,可按需修改列名(name)和显示标签(label)
  • 数据提取逻辑:通过split(' ')[0]提取rowmbr1文本的第一个单词,适配需求中的格式;同时处理空值场景,保证导出数据的完整性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:23:09