Aspose复选框增加问题咨询

Aspose组件的复选框技术研究之后,已经按照官方示例去配置发现只对生成excel文件有效,但是转成页面加载之后就没有复选框的属性出来了,
aspose增加复选框.zip (6.5 KB)

(复选框问题排查:经过几轮方案验证,确认为aspose.gridJs无法加载使用aspose.cell for java的API添加的checkbox元素)

@feng.qun.zhu.avaryholding.com

根据您提供的压缩包和描述,复选框能够正确写入生成的 Excel 文件,但在使用 Aspose.GridJS 将该文件渲染为页面时,复选框属性会消失,导致页面上不显示复选框【0】。

这属于 Aspose.GridJS 的已知限制:该组件目前不解析或渲染由 Aspose.Cells for Java API 添加的表单控件(如 CheckBox、RadioButton 等)【0】。因此,即使 Excel 中已经存在复选框,转换为 HTML/页面时这些控件也会被忽略。

可行的解决思路

方案 说明 实现要点
使用其他渲染方式 将 Excel 直接导出为 PDF、图片或普通 HTML(不含表单控件)进行展示。 workbook.save("output.pdf", SaveFormat.PDF);workbook.save("output.html", SaveFormat.HTML);
自行在前端补充控件 页面加载后,使用 JavaScript 根据单元格坐标手动插入 <input type="checkbox"> 1. 通过 Workbook.getWorksheets().get(0).getCells().get("A1") 获取复选框所在单元格的地址。
2. 前端读取该地址列表,动态生成对应的复选框元素并定位。
使用 Aspose.Cells 的 HTML 导出(保留表单) Aspose.Cells 在导出为 HTML 时可以保留表单控件(需要设置 HtmlSaveOptions.setExportFormulas(true) 等),然后在页面直接使用该 HTML。 java<br>HtmlSaveOptions opts = new HtmlSaveOptions();<br>opts.setExportFormulas(true); // 保留表单控件<br>workbook.save("output.html", opts);<br>
等待功能更新 若业务强依赖 GridJS 渲染复选框,可关注 Aspose 官方发布说明,后续版本可能会加入对表单控件的支持。 关注 Aspose.GridJS 更新日志或提交功能需求。

推荐步骤(以 HTML 导出为例)

// 1. 创建或加载工作簿
Workbook wb = new Workbook("input.xlsx");

// 2. 添加复选框(已完成,示例略)
// ...

// 3. 配置 HTML 导出选项,保留表单控件
HtmlSaveOptions htmlOpts = new HtmlSaveOptions();
htmlOpts.setExportFormulas(true);          // 导出公式(含表单控件)
htmlOpts.setExportImagesAsBase64(true);    // 图片内嵌
htmlOpts.setExportActiveWorksheetOnly(true);

// 4. 保存为 HTML
wb.save("output.html", htmlOpts);

将生成的 output.html 直接在浏览器中打开,即可看到复选框正常显示,而不经过 GridJS 的渲染路径【0】。

如果必须使用 GridJS,建议采用 方案二(前端自行插入)或 方案三(使用 Aspose.Cells 导出的完整 HTML)作为临时替代。若还有其他细节需要进一步确认,请提供具体的 GridJS 版本号或相关配置文件,以便我们进一步定位。

@feng.qun.zhu.avaryholding.com

我们这边无法复现问题,这个正常显示的,数据结构都有

QQ20251216-145515.png (6.6 KB)

QQ_1765868022755.png (16.7 KB)

@feng.qun.zhu.avaryholding.com
一切正常,请确认使用最新版本,最新的是v25.12,你们那边现在用的是哪个版本?

private static void testCheckbox() throws  Exception {
		String filepath="D:\\codebase\\customerissue\\wb\\tempfromdownload\\MyBookCheckbox.xls";
		Config.setFileCacheDirectory("F:\\storage\\gridjs_temp\\testcache\\");
		 
		
		GridJsWorkbook gw = new GridJsWorkbook();
		Workbook wb=new Workbook(filepath);
		gw.importExcelFile("uid_helloworld.xlsx", wb);
		StringBuilder sb=gw.exportToJsonStringBuilder("test.xlsx");
		System.out.println(sb.toString());
	}

QQ20251216-150719.png (50.1 KB)

{
  "actname": "Sheet1",
  "actrow": 13,
  "actcol": 7,
  "showtabs": true,
  "uniqueid": "helloworld.xlsx",
  "filename": "test.xlsx",
  "data": [
    {
      "name": "Sheet1",
      "sheetid": "s0",
      "showGrid": true,
      "sprotected": false,
      "displayRight2Left": false,
      "type": "Worksheet",
      "defaultFont": {
        "name": "Arial",
        "size": 10,
        "bold": false,
        "italic": false
      },
      "shapes": [
        {
          "id": "0",
          "tick": "1765868793597",
          "row": 2,
          "col": 1,
          "zorder": 0,
          "left": 64,
          "top": 34,
          "angle": 0.0,
          "width": 100,
          "height": 20,
          "type": "CheckBox",
          "strid": "1",
          "label": "是否同意条款",
          "v": false,
          "text": "是否同意条款",
          "transparency": 0.0
        }
      ],
      "cols": {
        "len": 16,
        "0": {
          "width": 64
        },
        "1": {
          "width": 145
        },
        "2": {
          "width": 64
        },
        "3": {
          "width": 64
        },
        "4": {
          "width": 64
        },
        "5": {
          "width": 64
        },
        "6": {
          "width": 64
        },
        "7": {
          "width": 64
        },
        "8": {
          "width": 64
        },
        "9": {
          "width": 64
        },
        "10": {
          "width": 64
        },
        "11": {
          "width": 64
        },
        "12": {
          "width": 64
        },
        "13": {
          "width": 64
        },
        "14": {
          "width": 64
        },
        "15": {
          "width": 64
        }
      },
      "rows": {
        "len": 13,
        "height": 17,
        "12": {
          "height": 19,
          "cells": {
            "15": {
              "text": ""
            }
          }
        }
      },
      "rowinfo": {
        "2": {
          "h": 33
        }
      }
    }
  ]
}