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

如何将Hibernate返回的List<Object[]>转为谷歌Sheet ValueRange所需格式

问题排查与修复方案

错误根源

Google Sheets API要求传入setValues()的List<List<Object>>是二维结构:第一层对应工作表的行,第二层对应当前行的每个单元格值。
你当前代码生成了三层嵌套列表:你先把所有行的List都存入了allData,再把allData作为唯一元素塞入values,导致API读取单元格时得到的是嵌套列表,触发Invalid values[1][0]: list_value报错。

修正后代码

List<List<Object>> values = new ArrayList<>();
// 直接将每行的Object[]转为List<Object>后加入values,不需要额外的allData中间层
for (Object[] obj : reportParameters.getDataSource().getResultSet()){
    values.add(Arrays.asList(obj));
}
ValueRange sheetData = new ValueRange()
    .setValues(values)
    .setRange("A2");
body.add(sheetData);

补充说明

如果后续仍有类型报错,可在转换行数据时额外做一层类型校验,将Hibernate返回的特殊枚举、实体代理类型提前转为字符串、数字等Google Sheets可识别的基础类型即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:06:04