您好,经调研造成此问题有两个原因:
1:工作表使用相同的名称命名样式,此问题计划在V14.1.0修复。
您可以参考临时解决方案,将以下代码添加到demo中。
- isDuplicateName = function (spread, name) {
- return !!(spread.getNamedStyle(name));
- };
- checkStyle = function (spread, sheet, r, c) {
- var style = sheet.getStyle(r, c);
- if (style && style.parentName && isDuplicateName(spread, style.parentName)) { //cell have stylename but cannot find the named style.
- style.parentName = sheet.name() + "_" + style.parentName;
- sheet.setStyle(r, c, style);
- //console.log("renamed the use style name", r, c, sheet.name());
- }
- }
- processNamedStyle = function (spread, sheet) {
- var styles = sheet.getNamedStyles();
- for (var i = 0; i<styles.length; i++) {
- var name = styles[i].name;
- if (isDuplicateName(spread, name)) {
- styles[i].name = sheet.name() + "_" + name;
- //console.log("renamed the duplicate style name", r, c, sheet.name());
- }
- spread.addNamedStyle(styles[i]);
- sheet.removeNamedStyle(name); }
- }
- spread.suspendPaint();
- for(var index = 0; index < spread.sheets.length; index++) {
- var sheet = spread.sheets[index];
- for (var c = 0; c < sheet.getColumnCount(); c++) {
- checkStyle(spread, sheet, -1, c);
- }
- for (var r = 0; r < sheet.getRowCount(); r++) {
- checkStyle(spread, sheet, r, -1);
- for (var c = 0; c < sheet.getColumnCount(); c++) {
- checkStyle(spread, sheet, r, c);
- }
- }
- processNamedStyle(spread, sheet);
- }
- spread.resumePaint();
复制代码 2:添加以上代码后,“假设-人力编制”表样式还是有些问题,对此计划在V14.0.9修复。
总结,V14.0.9 结合 临时解决方案 可以解决咱现在的问题。
V14.1.0 就无需使用 临时解决方案 了。
|