目录

Excel-ScriptLab学习笔记

Excel ScriptLab学习笔记

注意

The Excel JavaScript API 没有“Cell”对象或类。 相反,Excel JavaScript API 将所有 Excel 单元格定义为 Range 对象。 Excel UI 中的单个单元格转换为 Excel JavaScript API 中包含一个单元格的 Range 对象。 单个 Range 对象也可以包含多个连续的单元格。 若要了解详细信息,请参阅[使用 Excel JavaScript API 处理单元格]( ins-cells)。

官方文档

这里是针对Excel JavaScript API的帮助文档的开头,其下一级子目录如下图,包含了常用功能的说明 建议直接点击该连接,查看官方文档,内容都是中文,且有示例,通俗易懂 。 本笔记下面的内容只会对官方文档做连接和摘抄,没有额外内容 https://i-blog.csdnimg.cn/direct/fd17a1eb66f74cf2afe06763d24c747e.png

使用 Excel JavaScript API 设置和获取范围值、文本或公式

简单总结下 获得某个、某些连续的单元格的range对象 let range = sheet.getRange(“MyRange”); 读取值 需要先调用load(prop)方法,用于加载对应的内容,所传的prop参数有三种: // values如果单元格里面是公式,则可能拿不到值;text:取得与表格中展示出来的内容,没公式的是原值,有公式的就是公式得到的值; formulas:没公式的就是原值,有公式的就是公式 // 先调用方法,显式加载相应的值 range.load(“values”); // 与excel通信,获取实际的值,该语句必须执行,否则对应的属性上可能会没有值 await context.sync(); // 此时即可以使用相应的数据了 console.log(JSON.stringify(range.values, null, 4)); // 设置值,由于是个区域对象,会包含多行多列的数据,因此需要提供一个二维数组。一层数组中的每个对象表示一行数据,二层数组中的每个数据为该行、该列,即具体单元格的值。 // 设置单值 let range = sheet.getRange(“C3”); range.values = [[ 5 ]]; range.format.autofitColumns(); // 生效到excel中 await context.sync(); // 添加公式 let data = [ ["=C3 * D3"], ["=C4 * D4"], ["=C5 * D5"], ["=SUM(E3:E5)"] ]; let range = sheet.getRange(“E3:E6”); range.formulas = data; await context.sync();

调用内置 Excel 工作表函数

模板

代码模板

下面是打开ScriptLab就可以看到的代码内容 // Script $("#run").on(“click”, () => tryCatch(run)); async function run() { await Excel.run(async (context) => { const sheet = context.workbook.worksheets.getActiveWorksheet(); // 可以在这里写用来操作excel数据的代码 // 如果代码中有需要向excel中写入的数据,则这句必需要执行 await context.sync(); }); } /** Default helper for invoking an action and handling errors. */ async function tryCatch(callback) { try { await callback(); } catch (error) { // Note: In a production add-in, you’d want to notify the user through your add-in’s UI. console.error(error); } }

Run // css section.samples { margin-top: 20px; } section.samples .ms-Button, section.setup .ms-Button { display: block; margin-bottom: 5px; margin-left: 20px; min-width: 80px; } // Libraries @types/office-js /dist/css/fabric.min.css /dist/css/fabric.components.min.css /client/core.min.js @types/core-js @types/jquery@3.3.1