本帖最后由 Richard.Ma 于 2025-6-30 15:05 编辑
背景:Excel对表格中合并单元格的限制SpreadJS作为一款强大的前端电子表格控件,提供了丰富的表格(Table)功能,包括在表格内部创建合并单元格。然而,这一特性与Microsoft Excel存在兼容性问题:
解决方案:表格转换为普通区域在导出为XLSX文件前,将工作簿中的所有表格(Table)转换为普通单元格区域,同时保留合并单元格的结构和样式。 实现步骤
使用SpreadJS处理并导出
- sheet.tables.all().forEach((table)=>{
- sheet.tables.remove(table, GC.Spread.Sheets.Tables.TableRemoveOptions.keepData|GC.Spread.Sheets.Tables.TableRemoveOptions.keepStyle);
- })
复制代码
然后再继续通过spread.export方法进行导出即可
使用GCExcel处理并导出
- for (int r = sheet.getTables().getCount()-1; r >= 0; r--) {
- sheet.getTables().get(r).convertToRange();
- }
- workbook.save("output.xlsx");
复制代码
经过上述代码处理后,表格会被删除,但是所在区域的样式和内容,以及合并单元格都会保留下来
|