Browse Source

feat(api): provides an api for users

This submission provides the following apis: getCellValue, setCellValue, clearCell, deleteCell,
setCellFormat, find, replace, setHorizontalFrozen, setVerticalFrozen, setBothFrozen, cancelFrozen,
insertRow, insertColumn, deleteRow, deleteColumn, hideRow, hideColumn, showRow, showColumn,
getRange, getRangeValue.
master
swen-xiong 5 years ago
parent
commit
b176753cea
  1. 13
      src/controllers/freezen.js
  2. 5
      src/core.js
  3. 1168
      src/global/api.js
  4. 4
      src/global/border.js
  5. 42
      src/global/extend.js

13
src/controllers/freezen.js

@ -1512,8 +1512,13 @@ const luckysheetFreezen = {
/**
*
* @param {string} operate "freezenRow"/ "freezenColumn"......
* @param {Number | String} order 工作表索引默认值为当前工作表索引
* @param {Object} focus 冻结选区时的focus单元格行列值构成的对象格式为{ row_focus:0, column_focus:0 }
*/
saveFrozen: function(operate) {
saveFrozen: function(operate, order, focus = {}) {
if (order == null) {
order = getSheetIndex(Store.currentSheetIndex)
}
// New configuration attribute of sheet: frozen, which stores more semantic configuration for initialization and transmission to the backend. freezenhorizontaldata is still used as local data
@ -1523,8 +1528,8 @@ const luckysheetFreezen = {
const column_focus = select_save["column_focus"] == null ? select_save["column"][0] : select_save["column_focus"];
const range = {
row_focus: row_focus,
column_focus: column_focus
row_focus: focus.row_focus || row_focus,
column_focus: focus.column_focus || column_focus
}
const frozen = {
@ -1555,7 +1560,7 @@ const luckysheetFreezen = {
}
// store frozen
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)]["frozen"] = frozen[operate];
Store.luckysheetfile[order]["frozen"] = frozen[operate];
},
frozenTofreezen: function() {

5
src/core.js

@ -32,8 +32,13 @@ import { selectHightlightShow } from './controllers/select';
import {zoomInitial} from './controllers/zoom';
import method from './global/method';
import * as api from './global/api';
let luckysheet = {};
// mount api
luckysheet.api = api;
//创建luckysheet表格
luckysheet.create = function (setting) {
let extendsetting = common_extend(defaultSetting, setting);

1168
src/global/api.js

File diff suppressed because it is too large

4
src/global/border.js

@ -731,7 +731,7 @@ function getBorderInfoCompute(sheetIndex) {
if(data[bd_r] != null && getObjType(data[bd_r][bd_c]) == "object" && data[bd_r][bd_c].mc != null){
let cell = data[bd_r][bd_c];
let mc = cfg["merge"][cell.mc.r + "_" + cell.mc.c];
let mc = cfg["merge"][cell.mc.r + "_" + cell.mc.c] || {};
if(mc.c == bd_c){
if(borderInfoCompute[bd_r + "_" + bd_c] == null){
@ -823,7 +823,7 @@ function getBorderInfoCompute(sheetIndex) {
if(data[bd_r] != null && getObjType(data[bd_r][bd_c]) == "object" && data[bd_r][bd_c].mc != null){
let cell = data[bd_r][bd_c];
let mc = cfg["merge"][cell.mc.r + "_" + cell.mc.c];
let mc = cfg["merge"][cell.mc.r + "_" + cell.mc.c] || {};
if(value.l != null && bd_c == mc.c){ //左边框
borderInfoCompute[bd_r + "_" + bd_c].l = { "color": value.l.color, "style": value.l.style };

42
src/global/extend.js

@ -11,12 +11,13 @@ import { getSheetIndex } from '../methods/get';
import Store from '../store';
//增加行列
function luckysheetextendtable(type, index, value, direction) {
let d = editor.deepCopyFlowData(Store.flowdata);
let file = Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)];
function luckysheetextendtable(type, index, value, direction, order) {
let curOrder = order || getSheetIndex(Store.currentSheetIndex);
let file = Store.luckysheetfile[curOrder];
let d = file.data;
value = Math.floor(value);
let cfg = $.extend(true, {}, Store.config);
let cfg = $.extend(true, {}, file.config);
//合并单元格配置变动
if(cfg["merge"] == null){
@ -100,7 +101,7 @@ function luckysheetextendtable(type, index, value, direction) {
if(type == "row"){
let functionStr = "=" + formula.functionStrChange(calc_funcStr, "add", "row", direction, index, value);
if(d[calc_r][calc_c].f == calc_funcStr){
if(d[calc_r][calc_c] && d[calc_r][calc_c].f == calc_funcStr){
d[calc_r][calc_c].f = functionStr;
}
@ -122,7 +123,7 @@ function luckysheetextendtable(type, index, value, direction) {
else if(type == "column"){
let functionStr = "=" + formula.functionStrChange(calc_funcStr, "add", "col", direction, index, value);
if(d[calc_r][calc_c].f == calc_funcStr){
if(d[calc_r][calc_c] && d[calc_r][calc_c].f == calc_funcStr){
d[calc_r][calc_c].f = functionStr;
}
@ -715,6 +716,8 @@ function luckysheetextendtable(type, index, value, direction) {
}
}
// 修改当前sheet页时刷新
if (curOrder == Store.currentSheetIndex) {
jfrefreshgrid_adRC(
d,
cfg,
@ -726,6 +729,7 @@ function luckysheetextendtable(type, index, value, direction) {
newAFarr,
newFreezen
);
}
let range = null;
if(type == "row"){
@ -745,8 +749,11 @@ function luckysheetextendtable(type, index, value, direction) {
}
}
file.luckysheet_select_save = range;
if (curOrder == Store.currentSheetIndex) {
Store.luckysheet_select_save = range;
selectHightlightShow();
}
if (type == "row"){
let scrollLeft = $("#luckysheet-cell-main").scrollLeft(),
@ -810,12 +817,13 @@ function luckysheetextendData(rowlen, newData) {
}
//删除行列
function luckysheetdeletetable(type, st, ed) {
let d = editor.deepCopyFlowData(Store.flowdata);
let file = Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)];
function luckysheetdeletetable(type, st, ed, order) {
let curOrder = order || getSheetIndex(Store.currentSheetIndex);
let file = Store.luckysheetfile[curOrder];
let d = file.data;
let slen = ed - st + 1;
let cfg = $.extend(true, {}, Store.config);
let cfg = $.extend(true, {}, file.config);
//合并单元格配置变动
if(cfg["merge"] == null){
@ -888,7 +896,7 @@ function luckysheetdeletetable(type, st, ed) {
if(calc_r < st || calc_r > ed){
let functionStr = "=" + formula.functionStrChange(calc_funcStr, "del", "row", null, st, slen);
if(d[calc_r][calc_c].f == calc_funcStr){
if(d[calc_r][calc_c] && d[calc_r][calc_c].f == calc_funcStr){
d[calc_r][calc_c].f = functionStr;
}
@ -905,7 +913,7 @@ function luckysheetdeletetable(type, st, ed) {
if(calc_c < st || calc_c > ed){
let functionStr = "=" + formula.functionStrChange(calc_funcStr, "del", "col", null, st, slen);
if(d[calc_r][calc_c].f == calc_funcStr){
if(d[calc_r][calc_c] && d[calc_r][calc_c].f == calc_funcStr){
d[calc_r][calc_c].f = functionStr;
}
@ -1470,6 +1478,8 @@ function luckysheetdeletetable(type, st, ed) {
}
}
// 修改当前sheet页时刷新
if (curOrder == Store.currentSheetIndex) {
jfrefreshgrid_adRC(
d,
cfg,
@ -1482,11 +1492,13 @@ function luckysheetdeletetable(type, st, ed) {
newFreezen
);
}
}
//删除单元格
function luckysheetDeleteCell(type, str, edr, stc, edc) {
function luckysheetDeleteCell(type, str, edr, stc, edc, order) {
let d = editor.deepCopyFlowData(Store.flowdata);
let file = Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)];
let curOrder = order || getSheetIndex(Store.currentSheetIndex);
let file = Store.luckysheetfile[curOrder];
let rlen = edr - str + 1;
let clen = edc - stc + 1;
@ -1551,7 +1563,7 @@ function luckysheetDeleteCell(type, str, edr, stc, edc) {
}
}
if(d[calc_r][calc_c].f == calc_funcStr){
if(d[calc_r][calc_c] && d[calc_r][calc_c].f == calc_funcStr){
d[calc_r][calc_c].f = functionStr;
}

Loading…
Cancel
Save