官网地址:Luckysheet文档
因 财务系统得特殊性,Luckysheet自带得功能不足以满足客户需求,因此进行二次开发。
项目需求:按单元格设置公式,支持wps中的基本函数,加减乘除求和等,类似函数向导等功能
此次二开得主要功能点:
1. 预制函数(需要自定义函数并联动自己得项目);
经过源码查看,源码中 src/controllers/insertFormula.js 代码中涉及到fx中得函数调用界面,下拉选择的函数类型,再通过 #luckysheet-search-formula-confirm 去联查确定方法,需要做到点击确定的时候调用我Vue的界面,并且处理成自定义公式;

预制函数添加过后,需要设置公式,设置公式的位置在zh.js

添加完具体函数,需要在函数回调处理,
回调规则:因需求是不自动执行公式,所以只做展示;(最终效果是,展示的是 显示公式,双击后内容是具体公式展示;m v 需要区分开)
获取当前点击单元格的方法:
var range = luckysheet.getRange();
if (range) {
console.log("当前选中区域:", range);
console.log("起始行:", range.row[0]);
console.log("起始列:", range.column[0]);
} else {
console.error("未选中任何单元格");
}
修改具体单元格的数据方法:
因需要m,v 分别赋值
luckysheet.setCellValue(row, col, value);
// 设置第 0 行第 0 列的值为 100
luckysheet.setCellValue(0, 0, 100);
luckysheet.setCellValue(0, 0, {m:'计算公式',v:this.resData.funEnter});
预制函数到这基本就结束了,在加一个字体颜色区分一下和正常数据的关系
window.luckysheet.setCellFormat(0, 0, 'fc', "#1062d4");
还有一个问题,再次打开自定义函数框的时候,需要把表格内的数据赋值到我自己的输入框内,
-
使用
luckysheet.getRange()获取选中区域。 -
使用
luckysheet.getCellValue(row, col)获取单元格的值。 -
使用
luckysheet.getCellInfo(row, col)获取单元格的详细信息(包括v和m)。
luckysheet 单元格参数详情:
单元格对象详细参数
1. 基本属性
-
r: 行索引(从 0 开始)。 -
c: 列索引(从 0 开始)。 -
v: 单元格的实际值(例如,数字、字符串、公式等)。 -
m: 单元格的显示值(由v计算得出,通常是格式化后的值)。 -
f: 单元格的公式(如果有公式)。 -
ct: 单元格类型对象,包含以下属性:-
fa: 自动格式化类型(例如"General"、"0.00"等)。 -
t: 数据类型(例如"n"表示数字,"s"表示字符串,"b"表示布尔值,"e"表示错误)。 -
s: 格式化后的字符串值。
-
2. 样式属性
-
s: 样式对象,包含以下属性:-
fc: 字体颜色(十六进制颜色值,例如"#FF0000")。 -
fs: 字体大小(数字,例如12)。 -
ff: 字体名称(字符串,例如"Arial")。 -
bl: 是否加粗(0不加粗,1加粗)。 -
it: 是否斜体(0不斜体,1斜体)。 -
cl: 是否删除线(0无删除线,1有删除线)。 -
un: 是否下划线(0无下划线,1有下划线)。 -
bg: 背景颜色(十六进制颜色值,例如"#FFFF00")。 -
ht: 水平对齐方式("left"、"center"、"right")。 -
vt: 垂直对齐方式("top"、"middle"、"bottom")。 -
tb: 是否自动换行(0不换行,1换行)。 -
tr: 文本旋转角度(数字,例如45表示旋转 45 度)。 -
pd: 内边距(对象,包含top、right、bottom、left四个属性)。 -
bd: 边框样式,是一个对象数组,每个对象表示一条边框。例如: -
bd: [ { style: "thin", color: "#000000" }, // 上边框 { style: "dashed", color: "#FF0000" }, // 下边框 ]
-
3. 其他属性
-
sp: 是否被合并(0未合并,1已合并)。 -
mc: 合并单元格的信息(如果该单元格是合并单元格的一部分)。-
r: 合并单元格的起始行。 -
c: 合并单元格的起始列。 -
rs: 合并单元格的行跨度。 -
cs: 合并单元格的列跨度。
-
注意事项
-
单元格为空:
-
如果单元格为空,
getCellInfo可能返回null或undefined。
-
-
合并单元格:
-
如果单元格是合并单元格的一部分,
mc属性会包含合并单元格的信息。
-
-
样式属性:
-
如果单元格没有自定义样式,
s属性可能为null或undefined。
-
未经作者允许,禁止转载。如需转载,请联系作者授权。
883

被折叠的 条评论
为什么被折叠?



