|
@@ -555,6 +555,25 @@ const SpreadJsObj = {
|
|
|
const treeCellHeight = getTextHeight(sheet, treeCell.text(), treeCell.font(), validWidth);
|
|
|
sheet.setRowHeight(row, Math.max(treeCellHeight, sheet.getRowHeight(row)));
|
|
|
},
|
|
|
+ // 仅可在已经载入数据后使用
|
|
|
+ _calcRowHeight: function (sheet, data, row) {
|
|
|
+ let autoFit = false, treeWordWrapCol = -1;
|
|
|
+ sheet.zh_setting.cols.forEach(function (col, j) {
|
|
|
+ if (col.cellType === 'tree' && col.wordWrap) treeWordWrapCol = j;
|
|
|
+ const cell = sheet.getCell(row, j);
|
|
|
+ if (col.visible === undefined) col.visible = 1;
|
|
|
+ if (col.wordWrap && col.visible) {
|
|
|
+ cell.wordWrap(true);
|
|
|
+ autoFit = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (autoFit) {
|
|
|
+ sheet.autoFitRow(row);
|
|
|
+ if (treeWordWrapCol >= 0) this._autoFitRowWithTree(sheet, data, row, treeWordWrapCol);
|
|
|
+ } else {
|
|
|
+ sheet.setRowHeight(row, 21);
|
|
|
+ }
|
|
|
+ },
|
|
|
_loadRowData: function (sheet, data, row) {
|
|
|
// 单元格重新写入数据
|
|
|
if (!data) { return }
|
|
@@ -610,7 +629,8 @@ const SpreadJsObj = {
|
|
|
cell.foreColor(SpreadJsObj._getForeColor(sheet, data, row, col));
|
|
|
|
|
|
cell.setBorder(sheet.borderLine, {all: true});
|
|
|
- if (col.wordWrap) {
|
|
|
+ if (col.visible === undefined) col.visible = 1;
|
|
|
+ if (col.wordWrap && col.visible) {
|
|
|
cell.wordWrap(true);
|
|
|
autoFit = true;
|
|
|
}
|
|
@@ -1248,13 +1268,28 @@ const SpreadJsObj = {
|
|
|
* 刷新列显示
|
|
|
* @param sheet
|
|
|
*/
|
|
|
- refreshColumnVisible: function (sheet) {
|
|
|
- if(sheet.zh_setting) {
|
|
|
+ refreshColumnVisible: function (sheet, refreshRowHeight = false) {
|
|
|
+ if (!sheet.zh_setting) return;
|
|
|
+ this.beginMassOperation(sheet);
|
|
|
+ try {
|
|
|
sheet.zh_setting.cols.forEach(function (col, index) {
|
|
|
if (col.visible !== undefined && col.visible !== null) {
|
|
|
sheet.setColumnVisible(index, col.visible);
|
|
|
}
|
|
|
});
|
|
|
+ if (refreshRowHeight) {
|
|
|
+ const sortData = sheet.zh_dataType === 'tree' ? sheet.zh_tree.nodes : sheet.zh_data;
|
|
|
+ // 重算行高
|
|
|
+ for (let i = 0, iLen = sortData.length; i < iLen; i++) {
|
|
|
+ const data = sortData[i];
|
|
|
+ if (!data) { continue; }
|
|
|
+ this._calcRowHeight(sheet, data, i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.endMassOperation(sheet);
|
|
|
+ } catch (err) {
|
|
|
+ console.log(err);
|
|
|
+ this.endMassOperation(sheet);
|
|
|
}
|
|
|
},
|
|
|
/**
|