createsheet.js 1.59 KB
import { datagridgrowth } from './getdata';
import editor from './editor';
import rhchInit from './rhchInit';
import formula from './formula';
import { luckysheetrefreshgrid } from './refresh';
import sheetmanage from '../controllers/sheetmanage';
import Store from '../store';

export default function luckysheetcreatesheet(colwidth, rowheight, data, cfg, active) {
    if(active == null){
        active = true;
    }

    Store.visibledatarow = [];
    Store.visibledatacolumn = [];
    Store.ch_width = 0;
    Store.rh_height = 0;
    Store.zoomRatio = 1;

    if(cfg != null){
        Store.config = cfg;
    }
    else{
        Store.config = {};
    }

    if (data.length == 0) {
        Store.flowdata = datagridgrowth(data, rowheight, colwidth);
    }
    else if (data.length < rowheight && data[0].length < colwidth) {
        Store.flowdata = datagridgrowth(data, rowheight - data.length, colwidth - data[0].length);
    }
    else if (data.length < rowheight) {
        Store.flowdata = datagridgrowth(data, rowheight - data.length, 0);
    }
    else if (data[0].length < colwidth) {
        Store.flowdata = datagridgrowth(data, 0, colwidth - data[0].length);
    }
    else {
        Store.flowdata = data;
    }

    editor.webWorkerFlowDataCache(Store.flowdata);//worker存数据

    rhchInit(rowheight, colwidth);

    if(active){
        sheetmanage.showSheet();

        setTimeout(function () {
            sheetmanage.restoreCache();
            formula.execFunctionGroup();
            sheetmanage.restoreSheetAll(Store.currentSheetIndex);
            luckysheetrefreshgrid();
        }, 1);
    }
}