diff --git a/README-zh.md b/README-zh.md index de4e3eb..33ebee5 100644 --- a/README-zh.md +++ b/README-zh.md @@ -13,7 +13,7 @@ | 源码 | 文档 | Demo | 插件Demo | 论坛 | | ------ | -------- | ------ | ------ | ------ | | [Github](https://github.com/mengshukeji/Luckysheet)| [在线文档](https://mengshukeji.github.io/LuckysheetDocs/zh/) | [在线Demo](https://mengshukeji.github.io/LuckysheetDemo) | [导入Excel Demo](https://mengshukeji.github.io/LuckyexcelDemo/) | [中文论坛](https://support.qq.com/product/288322) | - | [Gitee镜像](https://gitee.com/mengshukeji/Luckysheet)| [Gitee在线文档](https://mengshukeji.gitee.io/LuckysheetDocs/zh/) | [Gitee在线Demo](https://mengshukeji.gitee.io/luckysheetdemo/) | [Gitee导入Excel Demo](https://mengshukeji.gitee.io/luckyexceldemo/) | [Gitter](https://gitter.im/mengshukeji/Luckysheet) | + | [Gitee镜像](https://gitee.com/mengshukeji/Luckysheet)| [Gitee在线文档](https://mengshukeji.gitee.io/LuckysheetDocs/zh/) | [Gitee在线Demo](https://mengshukeji.gitee.io/luckysheetdemo/) | [Gitee导入Excel Demo](https://mengshukeji.gitee.io/luckyexceldemo/) | [Google Group](https://groups.google.com/g/luckysheet) | ![演示](/docs/.vuepress/public/img/LuckysheetDemo.gif) diff --git a/README.md b/README.md index cfc7507..aa89a99 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ English| [简体中文](./README-zh.md) | Source Code | Documentation | Demo | Plugins Demo | Forum | | ------ | -------- | ------ | ------ | ------ | | [Github](https://github.com/mengshukeji/Luckysheet)| [Online Documentation](https://mengshukeji.github.io/LuckysheetDocs/) | [Online Demo](https://mengshukeji.github.io/LuckysheetDemo) | [Import Excel Demo](https://mengshukeji.github.io/LuckyexcelDemo/) | [Chinese Forum](https://support.qq.com/product/288322) | - | [Gitee Mirror](https://gitee.com/mengshukeji/Luckysheet)| [Gitee Online Documentation](https://mengshukeji.gitee.io/LuckysheetDocs/) | [Gitee Online Demo](https://mengshukeji.gitee.io/luckysheetdemo/) | [Gitee Import Excel Demo](https://mengshukeji.gitee.io/luckyexceldemo/) | [Gitter](https://gitter.im/mengshukeji/Luckysheet) | + | [Gitee Mirror](https://gitee.com/mengshukeji/Luckysheet)| [Gitee Online Documentation](https://mengshukeji.gitee.io/LuckysheetDocs/) | [Gitee Online Demo](https://mengshukeji.gitee.io/luckysheetdemo/) | [Gitee Import Excel Demo](https://mengshukeji.gitee.io/luckyexceldemo/) | [Google Group](https://groups.google.com/g/luckysheet) | ![Demo](/docs/.vuepress/public/img/LuckysheetDemo.gif) diff --git a/docs/guide/FAQ.md b/docs/guide/FAQ.md index 475bf99..b9f8608 100644 --- a/docs/guide/FAQ.md +++ b/docs/guide/FAQ.md @@ -42,7 +42,7 @@ luckysheet.buildGridData(luckysheetfile) ## **Q** Is the remote loading data loadUrl or updateUrl? **A**: [loadUrl](/zh/guide/config.html#loadurl). Configure loadUrl, Luckysheet will request the entire table data through ajax, and updateUrl will be used as the interface address for collaborative editing in real-time saving. -Note: Initial data needs to be configured with loadUrl and loadSheetUrl parameters, while for collaborative editing, in addition to the configuration of loadUrl and loadSheetUrl, updateUrl and allowUpdate must be configured to take effect. +Note: Initial data needs to be configured with loadUrl and loadSheetUrl parameters, while for collaborative editing, the four parameters of loadUrl, loadSheetUrl, updateUrl and allowUpdate can be configured to take effect. ------------ @@ -63,11 +63,7 @@ Note: Initial data needs to be configured with loadUrl and loadSheetUrl paramete ## **Q** How to import and export excel? -**A**: You can refer to the following cases at this stage -- Luckysheet import: https://www.cnblogs.com/DuShuSir/p/13179483.html -- Luckysheet export: https://www.cnblogs.com/recode-hyh/p/13168226.html - -Later, we will open another import and export library for adaptation, so stay tuned! +**A**: The excel import and export library developed with Luckysheet-[Luckyexcel](https://github.com/mengshukeji/Luckyexcel) has realized the excel import function, and the export function is under development. You can refer to this blog post for excel export at this stage: https://www.cnblogs.com/recode-hyh/p/13168226.html. ------------ diff --git a/docs/guide/README.md b/docs/guide/README.md index 9e8f407..7141366 100644 --- a/docs/guide/README.md +++ b/docs/guide/README.md @@ -232,7 +232,26 @@ You can see the complete settings | TAB | Move cell selection box to the right | | DELETE | Clear cell data | -## warning -::: danger -The new API is being sorted out and may change at any time, please use it with caution! -::: \ No newline at end of file +## Guide + +If you encounter problems with Luckysheet, follow the steps below to find the answer + +1. Use Doge or Google to search for common technical issues +2. For Luckysheet related issues, please view [Luckysheet Official Document](https://mengshukeji.github.io/LuckysheetDocs/)(Note that the function of marking TODO has not yet been implemented) +3. Search [FAQ List](https://mengshukeji.github.io/LuckysheetDocs/guide/FAQ.html) +4. Search [Official Forum](https://groups.google.com/g/luckysheet) to see if anyone has encountered it +5. Try to check or experiment by yourself to find the answer +6. Please try to read the source code to find the answer, + +If none of the above methods solve your problem, you can consider: + +- Go to [Official Forum](https://groups.google.com/g/luckysheet) to ask questions +- Go to [Gitter](https://gitter.im/mengshukeji/Luckysheet) to ask questions +- If there are obvious problems or the needs cannot be met, please submit [issues](https://github.com/mengshukeji/Luckysheet/issues) + +> Recommended reading [How To Ask Questions The Smart Way](http://www.catb.org/~esr/faqs/smart-questions.html) + +At the same time, we strongly recommend you to help us enrich the Luckysheet community + +- If you find a problem with the documentation or code, you can contribute by submitting a PR. All reasonable changes, optimizations, amendments, or document amendments or updates related to submissions will be accepted +- When you have some experience in using or secondary developing Luckysheet, we encourage you to share it through blog posts \ No newline at end of file diff --git a/docs/guide/api.md b/docs/guide/api.md index c78c051..23fcca3 100644 --- a/docs/guide/api.md +++ b/docs/guide/api.md @@ -665,7 +665,7 @@ Use note: ------------ -### getDefaultColumnWidth([,setting]) +### getDefaultColWidth([,setting]) (TODO) @@ -683,7 +683,7 @@ Use note: - Returns the default column width of the current worksheet - `luckysheet.getDefaultColumnWidth()` + `luckysheet.getDefaultColWidth()` Return to get `73` diff --git a/docs/zh/guide/FAQ.md b/docs/zh/guide/FAQ.md index 6ae06b1..81eb18e 100644 --- a/docs/zh/guide/FAQ.md +++ b/docs/zh/guide/FAQ.md @@ -1,4 +1,6 @@ -# FAQ +# 常见问题 + +本章内容搜集了大家反馈的常见问题,如果官方文档和此列表都不能解答您的疑问,推荐到[官方论坛](https://support.qq.com/product/288322)反馈 ## **Q** luckysheetfile中的data和celldata有什么区别? @@ -42,7 +44,7 @@ luckysheet.buildGridData(luckysheetfile) ## **Q** 远端加载数据是loadUrl还是updateUrl? **A** : [loadUrl](/zh/guide/config.html#loadurl)。配置了loadUrl,Luckysheet会通过ajax请求整个表格数据,而updateUrl会作为协同编辑实时保存的接口地址。 -注意:初始化数据需要配置loadUrl和loadSheetUrl参数,而协同编辑则在配置loadUrl和loadSheetUrl的基础上,还要配置updateUrl和allowUpdate才能生效。 +注意:初始化数据需要配置loadUrl和loadSheetUrl参数,而协同编辑则在配置loadUrl、loadSheetUrl、updateUrl和allowUpdate四个参数才能生效。 ------------ @@ -63,11 +65,7 @@ luckysheet.buildGridData(luckysheetfile) ## **Q** excel导入导出怎么做? -**A** :现阶段可以参考以下案例 -- Luckysheet导入: https://www.cnblogs.com/DuShuSir/p/13179483.html -- Luckysheet导出 : https://www.cnblogs.com/recode-hyh/p/13168226.html - -后期会另外开源一个导入导出库做适配,敬请期待! +**A** :配合Luckysheet开发的excel导入导出库-[Luckyexcel](https://github.com/mengshukeji/Luckyexcel)已经实现了excel导入功能,导出功能正在开发当中。现阶段excel导出可以参考这篇博文: https://www.cnblogs.com/recode-hyh/p/13168226.html。 ------------ @@ -75,3 +73,109 @@ luckysheet.buildGridData(luckysheetfile) **A** :参考以下案例 - Luckysheet初始化含合并单元格的数据: https://www.cnblogs.com/DuShuSir/p/13272397.html + +------------ + +## **Q** Luckysheet如何把表格里的数据保存到数据库?有没有服务端存储和协作的解决方案? + +**A** :有两个方案: + +- 一是表格操作完成后,使用`luckysheet.getAllSheets()`方法获取到全部的工作表数据,全部发送到后台存储。 +- 二是开启协同编辑功能,实时传输数据给后端。 +具体的操作步骤参考这篇文章:https://www.cnblogs.com/DuShuSir/p/13857874.html + +------------ + +## **Q** 如何监听单元格hover或者点击事件?`cellRenderAfter`如何实时监听变化? + +**A** :我们搜集到需要针对单元格事件的二次开发需求,规划了单元格相关的钩子函数,参考[单元格钩子函数](/zh/guide/config.html#cellrenderafter)(显示的TODO的暂未开放) + +------------ + +## **Q** 顶部的工具栏不支持自定义配置? + +**A** : +顶部工具栏的自定义配置使用初始[options.showtoolbarconfig](/zh/guide/config.html#showtoolbarconfig)(如果标注TODO表示暂未开发) + +------------ + +## **Q** 项目使用了jQuery吗? + +**A** :是的。Luckysheet内部启动时间比开源的时间早很多,所以用到了jQuery。打包工具会把jQuery集成到打包目录的`./plugins/js/plugin.js`文件中。 + +如果您的项目中(比如React/Vue)也自己全局引用了jQuery,且造成了冲突,可以尝试去掉一个jQuery。 + +要想在Luckysheet里去除jQuery,需要在源码根目录下的`gulpfile.js`文件中找到打包jQuery的地方:[src/plugins/js/jquery.min.js](https://github.com/mengshukeji/Luckysheet/blob/master/gulpfile.js),删除jQuery相关的信息即可。 + +------------ + +## **Q** 如何为单元格对象新增字段? + +**A** 首先参考[单元格对象格式](https://mengshukeji.github.io/LuckysheetDocs/zh/guide/cell.html),然后参照源码批注的部分[src/controllers/postil.js](https://github.com/mengshukeji/Luckysheet/blob/master/src/controllers/postil.js)。批注是一个加在单元格对象上的一个配置。 + +------------ + +## **Q** 工具栏图标加载不出来? + +**A** 工具栏及其他部分图标采用了iconfont图标,加载不出来是因为缺少了iconfont.css的引入,之前旧版官方文档未写清楚这一点对大家造成误导,很抱歉。 + +详细的Luckysheet使用教程参考已经更新的[官方文档](/zh/guide/#使用步骤) + +------------ + +## **Q** Luckyexcel打包后不动? + +**A** 打包的终端命令行不显示结束,但是如果`dist`文件夹内已经有了结果文件`luckyexcel.js`,则表明是正常的。 + +Luckyexcel是excel导入导出库,项目采用了gulp作为打包工具,旧版打包工具有点问题在命令行显示这块有些问题,待修复完这个问题就不会出现了。 + +更多详细信息关注:[Luckyexcel](https://github.com/mengshukeji/Luckyexcel/) + +------------ + +## **Q** 单元格不可编辑如何控制?表格保护怎么操作? + +**A** 单元格不可编辑属于工作表保护的功能范畴,需要配置在每个sheet页中`config.authority`,最新的设置参数请参考[工作表保护](/zh/guide/sheet.html#config-authority)。 + +为了大家便于理解工作表保护的功能使用,下方的视频演示了如何让当前整个工作表不可编辑,但是允许某一列单元格可编辑的功能: + + + +跟着演示操作一下本地的工作表,然后打开浏览器控制台,使用`luckysheet.getLuckysheetfile()[0].config.authority`就可以获取到第一个工作表的工作表保护参数。 + +------------ + +## **Q** 数据验证怎么配置? + +**A** 最新文档已经提供了数据验证的配置信息,参考[数据验证配置](/zh/guide/sheet.html#dataVerification)。官方也提供了API方法 [setDataVerification](/zh/guide/api.html#setdataverification-optionitem-setting),用于动态设置数据验证功能。 + +------------ + +## **Q** Luckysheet通过引入CDN有案例吗? + +**A** Luckysheet支持CDN方式引入,参考:[本地HTML采用cdn加载方式引入Luckysheet的案例](https://www.cnblogs.com/DuShuSir/p/13859103.html) + +------------ + +## **Q** 请问一下图片怎么限制在单元格里面自适应高度? + +**A** 首先需要对图片设置移动并调整单元格大小,然后有以下几种情况: + +- 如果图片位置完全在单元格内部时,当拉长单元格的宽度或高度的时候,图片不会随着单元格的变大而伸缩变大 +- 如果图片位置完全在单元格内部时,当拉短单元格的宽度或高度,贴到图片的边时,图片会随着单元格的变小而伸缩变小 +- 当这个图片超过单元格的边框时,图片可以跟随单元格大小变化 + +根据图片的第二个特性,可以操作得到图片位置信息,原理就是将图片的位置设置成和单元格边框重叠(源码中,需要重叠超过2px),以下演示视频展示了怎么将图片限制在单元格里面自适应宽高。 + + + +------------ + +## **Q** 如何获取工作表默认的行高列宽? + +**A** 有两种方式可以获取 + +- 一是使用`luckysheet.getLuckysheetfile()`获取到所有工作表配置后,在各个工作表的配置中直接取得默认行高`defaultRowHeight`和默认列宽`defaultColWidth`。 +- 二是开放了API可以获取到工作表默认的行高[getDefaultRowHeight](/zh/guide/api.html#getdefaultrowheight-setting)和列宽[getDefaultColWidth](/zh/guide/api.html#getdefaultcolwidth-setting) + +------------ \ No newline at end of file diff --git a/docs/zh/guide/README.md b/docs/zh/guide/README.md index 0659af5..ac9fa97 100644 --- a/docs/zh/guide/README.md +++ b/docs/zh/guide/README.md @@ -240,4 +240,28 @@ luckysheetfile = [ {sheet1设置}, {sheet2设置}, {sheet3设置} ]` | UP/DOWN/LEFT/RIGHT | 移动单元格选框 | | ENTER | 编辑单元格 | | TAB | 向右移动单元格选框 | -| DELETE | 清除单元格数据 | \ No newline at end of file +| DELETE | 清除单元格数据 | + +## 指引 + +如果您使用Luckysheet遇到了问题,按以下步骤来寻找答案 + +1. 使用多吉或者Google搜索常见技术问题 +2. Luckysheet相关的问题优先查看[Luckysheet官方文档](https://mengshukeji.github.io/LuckysheetDocs/zh/)(注意标注TODO的功能暂未实现) +3. 搜索[常见问题列表](https://mengshukeji.github.io/LuckysheetDocs/zh/guide/FAQ.html) +4. 搜索[官方论坛](https://support.qq.com/product/288322),看看有没有人已经遇到过 +5. 尝试自己检查或试验以找到答案 +6. 请尝试阅读源代码以找到答案, + +如果以上方法都没有解决您的问题,可以考虑: + +- 去[官方论坛](https://support.qq.com/product/288322)提问 +- 去Luckysheet官方微信群或者QQ群提问 +- 发现有明显问题的或者需求无法满足的,直接提交[issues](https://github.com/mengshukeji/Luckysheet/issues) + +> 推荐阅读 [提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md) + +同时,我们强烈推荐您帮助我们丰富Luckysheet社区 + +- 如果您发现文档或者代码有问题,您可以通过提交PR来贡献。所有合理的改动、优化、修正,或者文档的修正、更新相关的提交都会被接受 +- 当您有了一部分使用或者二次开发Luckysheet的经验,我们鼓励您通过博文分享出来 \ No newline at end of file diff --git a/docs/zh/guide/api.md b/docs/zh/guide/api.md index a1753be..75d8961 100644 --- a/docs/zh/guide/api.md +++ b/docs/zh/guide/api.md @@ -662,7 +662,7 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 ------------ -### getDefaultColumnWidth([,setting]) +### getDefaultColWidth([,setting]) (TODO) @@ -680,7 +680,7 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 - 返回当前工作表的默认列宽 - `luckysheet.getDefaultColumnWidth()` + `luckysheet.getDefaultColWidth()` 返回得到 `73` @@ -2393,15 +2393,8 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 - **参数**: - - {Object} [optionItem]: 数据验证的配置信息 - + {String} [type]: 类型;值可为`"dropdown"`(下拉列表)、`"checkbox"`(复选框)、`"number"`(数字)、`"number_integer"`(数字-整数)、`"number_decimal"`(数字-小数)、`"text_content"`(文本-内容)、`"text_length"`(文本-长度)、`"date"`(日期)、`"validity"`(有效性); - + {String | Null} [type2]: 条件类型;类型`type`值为`"dropdown"`、`"checkbox"`时,`type2`值可为`null`;类型`type`值为`"number"`、`"number_integer"`、`"number_decimal"`、`"text_length"`时,`type2`值可为`"bw"`(介于)、`"nb"`(不介于)、`"eq"`(等于)、`"ne"`(不等于)、`"gt"`(大于)、`"lt"`(小于)、`"gte"`(大于等于)、`"lte"`(小于等于);类型`type`值为`"text_content"`时,`type2`值可为`"include"`(包括)、`"exclude"`(不包括)、`"equal"`(等于);类型`type`值为`"date"`时,`type2`值可为`"bw"`(介于)、`"nb"`(不介于)、`"eq"`(等于)、`"ne"`(不等于)、`"bf"`(早于)、`"nbf"`(不早于)、`"af"`(晚于)、`"naf"`(不晚于);类型`type`值为`"validity"`时,`type2`值可为`"card"`(身份证号码)、`"phone"`(手机号); - + {String | Number} [value1]: 条件值1;类型`type`值为`"dropdown"`时,`value1`值可为选区或以英文逗号隔开的字符串,如`"1,2,3"`或者`"A1:B2"`;类型`type`值为`"validity"`时,`value1`值可为空;其他类型时`value1`值为数值或字符串; - + {String | Number} [value2]: 条件值2;类型`type`值为`"checkbox"`或者条件类型`type2`值为`"bw"`、`"nb"`时有`value2`值,条件值为数值或日期时,条件值2要大于等于条件值1;其它情况可为空; - + {Boolean} [remote]: 自动远程获取选项;默认为`false`; - + {Boolean} [prohibitInput]: 输入数据无效时禁止输入;默认为`false`; - + {Boolean} [hintShow]: 选中单元格时显示提示语;默认为`false`; - + {String} [hintText]: 提示语文本;`hintShow`为`true`时需配置; + - {Object} [optionItem]: 数据验证的配置信息,具体详细的配置信息参考[dataVerification](/zh/guide/sheet.html#dataVerification) + - {PlainObject} [setting]: 可选参数 + {Object | String} [range]: 数据验证的选区范围,支持选区的格式为`"A1:B2"`、`"sheetName!A1:B2"`或者`{row:[0,1],column:[0,1]}`,只能为单个选区;默认为当前选区 + {Number} [order]: 工作表下标;默认值为当前工作表下标 diff --git a/docs/zh/guide/config.md b/docs/zh/guide/config.md index 07ad1aa..2a531c6 100644 --- a/docs/zh/guide/config.md +++ b/docs/zh/guide/config.md @@ -451,21 +451,24 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### showRowBar +[todo] - 类型:Boolean - 默认值:true - 作用:是否显示行号区域 ------------ ### showColumnBar +[todo] - 类型:Boolean - 默认值:true - 作用:是否显示列号区域 ------------ ### sheetFormulaBar +[todo] - 类型:Boolean - 默认值:true -- 作用:是否显示公示栏 +- 作用:是否显示公式栏 ------------ ### defaultFontSize @@ -475,7 +478,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ -## 钩子函数(TODO) +## 钩子函数 钩子函数应用于二次开发时,会在各个常用鼠标或者键盘操作时植入钩子,调用开发者传入的函数,起到扩展Luckysheet功能的作用。 @@ -484,6 +487,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ## 单元格 ### cellRenderAfter +(TODO) - 类型:Function - 默认值:null - 作用:单元格渲染结束后触发 @@ -494,6 +498,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### cellHover +(TODO) - 类型:Function - 默认值:null - 作用:鼠标移过单元格时(hover)触发 @@ -504,6 +509,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### cellEditBefore +(TODO) - 类型:Function - 默认值:null - 作用:双击单元格后触发,即在双击单元格编辑内容的时候,最先触发这个方法 @@ -514,6 +520,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### cellEditAfter +(TODO) - 类型:Function - 默认值:null - 作用:双击单元格后触发,即在双击单元格编辑内容的时候,最后触发这个方法 @@ -525,6 +532,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### fireMousedown +(TODO) - 类型:Function - 默认值:null - 作用:单元格数据下钻自定义方法 @@ -534,6 +542,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ## 选区 ### rangeSelectBefore +(TODO) - 类型:Function - 默认值:null - 作用:框选或者设置选区前触发 @@ -542,6 +551,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeSelectAfter +(TODO) - 类型:Function - 默认值:null - 作用:框选或者设置选区后触发 @@ -550,6 +560,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeMoveBefore +(TODO) - 类型:Function - 默认值:null - 作用:移动选区前,包括单个单元格 @@ -558,6 +569,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeMoveAfter +(TODO) - 类型:Function - 默认值:null - 作用:移动选区后,包括单个单元格 @@ -567,6 +579,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeEditBefore +(TODO) - 类型:Function - 默认值:null - 作用:选区修改前 @@ -576,6 +589,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeEditAfter +(TODO) - 类型:Function - 默认值:null - 作用:选区修改后 @@ -586,6 +600,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeCopyBefore +(TODO) - 类型:Function - 默认值:null - 作用:选区复制前 @@ -595,6 +610,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeCopyAfter +(TODO) - 类型:Function - 默认值:null - 作用:选区复制后 @@ -604,6 +620,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangePasteBefore +(TODO) - 类型:Function - 默认值:null - 作用:选区粘贴前 @@ -613,6 +630,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangePasteAfter +(TODO) - 类型:Function - 默认值:null - 作用:选区粘贴后 @@ -623,6 +641,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeCutBefore +(TODO) - 类型:Function - 默认值:null - 作用:选区剪切前 @@ -632,6 +651,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeCutAfter +(TODO) - 类型:Function - 默认值:null - 作用:选区剪切后 @@ -641,6 +661,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeDeleteBefore +(TODO) - 类型:Function - 默认值:null - 作用:选区删除前 @@ -650,6 +671,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeDeleteAfter +(TODO) - 类型:Function - 默认值:null - 作用:选区删除后 @@ -659,6 +681,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeClearBefore +(TODO) - 类型:Function - 默认值:null - 作用:选区清除前 @@ -668,6 +691,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangeClearAfter +(TODO) - 类型:Function - 默认值:null - 作用:选区清除后 @@ -677,6 +701,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangePullBefore +(TODO) - 类型:Function - 默认值:null - 作用:选区下拉前 @@ -685,6 +710,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### rangePullAfter +(TODO) - 类型:Function - 默认值:null - 作用:选区下拉后 @@ -696,12 +722,14 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ## 工作表 ### sheetCreatekBefore +(TODO) - 类型:Function - 默认值:null - 作用:创建sheet页前触发,sheet页新建也包含数据透视表新建 ------------ ### sheetCreateAfter +(TODO) - 类型:Function - 默认值:null - 作用:创建sheet页后触发,sheet页新建也包含数据透视表新建 @@ -710,6 +738,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetMoveBefore +(TODO) - 类型:Function - 默认值:null - 作用:sheet移动前 @@ -719,6 +748,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetMoveAfter +(TODO) - 类型:Function - 默认值:null - 作用:sheet移动后 @@ -729,6 +759,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetDeleteBefore +(TODO) - 类型:Function - 默认值:null - 作用:sheet删除前 @@ -737,6 +768,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetDeleteAfter +(TODO) - 类型:Function - 默认值:null - 作用:sheet删除后 @@ -745,6 +777,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetEditNameBefore +(TODO) - 类型:Function - 默认值:null - 作用:sheet修改名称前 @@ -754,6 +787,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetEditNameAfter +(TODO) - 类型:Function - 默认值:null - 作用:sheet修改名称后 @@ -764,6 +798,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetEditColorBefore +(TODO) - 类型:Function - 默认值:null - 作用:sheet修改颜色前 @@ -773,6 +808,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetEditColorAfter +(TODO) - 类型:Function - 默认值:null - 作用:sheet修改颜色后 @@ -783,6 +819,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetZoomBefore +(TODO) - 类型:Function - 默认值:null - 作用:sheet缩放前 @@ -792,6 +829,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### sheetZoomAfter +(TODO) - 类型:Function - 默认值:null - 作用:sheet缩放后 @@ -805,6 +843,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ## 工作簿 ### workbookCreateBefore +(TODO) - 类型:Function - 默认值:null - 作用:表格创建之前触发。旧的钩子函数叫做`beforeCreateDom` @@ -813,6 +852,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### workbookCreateAfter +(TODO) - 类型:Function - 默认值:null - 作用:表格创建之后触发 @@ -821,6 +861,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### workbookDestroyBefore +(TODO) - 类型:Function - 默认值:null - 作用:表格销毁之前触发 @@ -829,6 +870,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### workbookDestroyAfter +(TODO) - 类型:Function - 默认值:null - 作用:表格销毁之后触发 @@ -837,6 +879,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### updated +(TODO) - 类型:Function - 默认值:null - 作用:每次操作更新后执行的方法,在画布渲染之后执行,即客户端每执行一次表格操作,Luckysheet将这次操作存到历史记录中后触发,撤销重做时因为也算一次操作,当然也会触发此钩子函数。 @@ -845,6 +888,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### resized +(TODO) - 类型:Function - 默认值:null - 作用:resize执行之后 @@ -856,6 +900,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ## 图片 ### imageInsertBefore +(TODO) - 类型:Function - 默认值:null - 作用:图片插入之前 @@ -864,6 +909,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### imageInsertAfter +(TODO) - 类型:Function - 默认值:null - 作用:图片插入之后 @@ -872,6 +918,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### imageUpdateBefore +(TODO) - 类型:Function - 默认值:null - 作用:图片修改之前,修改的内容包括宽高、位置、裁剪等操作 @@ -880,6 +927,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### imageUpdateAfter +(TODO) - 类型:Function - 默认值:null - 作用:图片修改之后,修改的内容包括宽高、位置、裁剪等操作 @@ -889,6 +937,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### imageDeleteBefore +(TODO) - 类型:Function - 默认值:null - 作用:图片删除之前 @@ -897,6 +946,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### imageDeleteAfter +(TODO) - 类型:Function - 默认值:null - 作用:图片删除之后 @@ -908,6 +958,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ## 批注 ### commentInsertBefore +(TODO) - 类型:Function - 默认值:null - 作用:插入批注之前 @@ -916,6 +967,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### commentInsertAfter +(TODO) - 类型:Function - 默认值:null - 作用:插入批注之后 @@ -924,6 +976,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### commentDeleteBefore +(TODO) - 类型:Function - 默认值:null - 作用:删除批注之前 @@ -932,6 +985,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### commentDeleteAfter +(TODO) - 类型:Function - 默认值:null - 作用:删除批注之后 @@ -940,6 +994,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### commentUpdateBefore +(TODO) - 类型:Function - 默认值:null - 作用:修改批注之前 @@ -948,6 +1003,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### commentUpdateAfter +(TODO) - 类型:Function - 默认值:null - 作用:修改批注之后 @@ -960,6 +1016,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ## 数据透视表 ### pivotTableEditBefore +(TODO) - 类型:Function - 默认值:null - 作用:修改数据透视表之前,操作如:拖动字段等 @@ -968,6 +1025,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### pivotTableEditAfter +(TODO) - 类型:Function - 默认值:null - 作用:修改数据透视表之后,操作如:拖动字段等 @@ -980,6 +1038,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ## 冻结 ### frozenCreateBefore +(TODO) - 类型:Function - 默认值:null - 作用:设置冻结前 @@ -988,6 +1047,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### frozenCreateAfter +(TODO) - 类型:Function - 默认值:null - 作用:设置冻结后 @@ -996,6 +1056,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### frozenCancelBefore +(TODO) - 类型:Function - 默认值:null - 作用:取消冻结前 @@ -1004,6 +1065,7 @@ Luckysheet开放了更细致的自定义配置选项,分别有 ------------ ### frozenCancelAfter +(TODO) - 类型:Function - 默认值:null - 作用:取消冻结后 diff --git a/docs/zh/guide/sheet.md b/docs/zh/guide/sheet.md index d66c8f2..ba633f9 100644 --- a/docs/zh/guide/sheet.md +++ b/docs/zh/guide/sheet.md @@ -47,6 +47,7 @@ options.data示例如下: "zoomRatio":1, // 缩放比例 "image":[], //图片 "showGridLines": 1, //是否显示网格线 + "dataVerification":{} //数据验证配置 }, { "name": "Sheet2", @@ -1334,6 +1335,62 @@ options.data示例如下: - 默认值:1 - 作用:是否显示网格线,`1`表示显示,`0`表示隐藏 +------------ +### dataVerification +- 类型:Object +- 默认值:{} +- 作用:数据验证的配置信息。以下列出了所有需要设置的详细字段: + + {String} [type]: 类型;值可为 + + `"dropdown"`(下拉列表) + + `"checkbox"`(复选框) + + `"number"`(数字) + + `"number_integer"`(数字-整数) + + `"number_decimal"`(数字-小数) + + `"text_content"`(文本-内容) + + `"text_length"`(文本-长度) + + `"date"`(日期) + + `"validity"`(有效性); + + {String | Null} [type2]: 条件类型; + + 类型`type`值为`"dropdown"/"checkbox"`时,`type2`值可为 + + `null`; + + 类型`type`值为`"number"/"number_integer"/"number_decimal"/"text_length"`时,`type2`值可为 + + `"bw"`(介于) + + `"nb"`(不介于) + + `"eq"`(等于) + + `"ne"`(不等于) + + `"gt"`(大于) + + `"lt"`(小于) + + `"gte"`(大于等于) + + `"lte"`(小于等于) + + 类型`type`值为`"text_content"`时,`type2`值可为 + + `"include"`(包括) + + `"exclude"`(不包括) + + `"equal"`(等于) + + 类型`type`值为`"date"`时,`type2`值可为 + + `"bw"`(介于) + + `"nb"`(不介于) + + `"eq"`(等于) + + `"ne"`(不等于) + + `"bf"`(早于) + + `"nbf"`(不早于) + + `"af"`(晚于) + + `"naf"`(不晚于) + + 类型`type`值为`"validity"`时,`type2`值可为 + + `"card"`(身份证号码) + + `"phone"`(手机号); + + {String | Number} [value1]: 条件值1; + + 类型`type`值为`"dropdown"`时,`value1`值可为选区或以英文逗号隔开的字符串,如`"1,2,3"`或者`"A1:B2"`; + + 类型`type`值为`"validity"`时,`value1`值可为空; + + 其他类型时`value1`值为数值或字符串; + + {String | Number} [value2]: 条件值2; + + 类型`type`值为`"checkbox"`或者条件类型`type2`值为`"bw"`、`"nb"`时有`value2`值,条件值为数值或日期时,条件值2要大于等于条件值1;其它情况可为空; + + {Boolean} [remote]: 自动远程获取选项;默认为`false`; + + {Boolean} [prohibitInput]: 输入数据无效时禁止输入;默认为`false`; + + {Boolean} [hintShow]: 选中单元格时显示提示语;默认为`false`; + + {String} [hintText]: 提示语文本;`hintShow`为`true`时需配置; + + {Boolean} [checked]: 是否勾选中复选框;`type`为`checkbox`时需配置; + + 一个完整的配置案例请参考源码DEMO示例 [/src/demoData/sheetDataVerification.js](https://github.com/mengshukeji/Luckysheet/blob/master/src/demoData/sheetDataVerification.js) ------------ ## 调试信息 @@ -1383,6 +1440,7 @@ Luckysheet在初始化完成之后进行的一系列操作,会将更多本地 "zoomRatio":1, // 缩放比例 "image":[], //图片 "showGridLines": 1, //是否显示网格线 + "dataVerification":{} //数据验证配置 "visibledatarow": [], //所有行的位置 diff --git a/src/demoData/demoFeature.js b/src/demoData/demoFeature.js index 329c4b9..db3a8e5 100644 --- a/src/demoData/demoFeature.js +++ b/src/demoData/demoFeature.js @@ -15,10 +15,15 @@ // Tencent Forum Link Button function supportButton() { const text = language() === 'zh' ? '反馈' : 'Forum'; + const link = language() === 'zh' ? 'https://support.qq.com/product/288322' : 'https://groups.google.com/g/luckysheet'; - document.querySelector("body").insertAdjacentHTML('beforeend', `${text}`); + document.querySelector("body").insertAdjacentHTML('beforeend', `${text}`); } supportButton() + + window.luckysheetDemoUtil = { + language:language + } })() \ No newline at end of file diff --git a/src/global/api.js b/src/global/api.js index ad26e8b..55df57a 100644 --- a/src/global/api.js +++ b/src/global/api.js @@ -5391,7 +5391,8 @@ export function setDataVerification(optionItem, options = {}) { remote = false, prohibitInput = false, hintShow = false, - hintText = '' + hintText = '', + checked = false } = {...optionItem} let typeValues = ["dropdown", "checkbox", "number", "number_integer", "number_decimal", "text_content", "text_length", "date", "validity"]; @@ -5545,7 +5546,7 @@ export function setDataVerification(optionItem, options = {}) { type2: type2, value1: value1, value2: value2, - checked: false, + checked: checked, remote: remote, prohibitInput: prohibitInput, hintShow: hintShow, @@ -5569,7 +5570,7 @@ export function setDataVerification(optionItem, options = {}) { currentDataVerification[r + '_' + c] = item; if(type == 'checkbox'){ - setcellvalue(r, c, data, item.value2); + item.checked ? setcellvalue(r, c, data, item.value1) : setcellvalue(r, c, data, item.value2); } } } diff --git a/src/index.html b/src/index.html index d9be04a..eda4e48 100644 --- a/src/index.html +++ b/src/index.html @@ -21,6 +21,10 @@
+ + + + - - - + \ No newline at end of file