Tag: office js

办公室js工作表对象

我有关于Office js的工作表对象的一般查询。 这个对象有一个名为'id'的属性。我们有什么办法可以确保每次加载一个特定的表单时,生成的ID总是一样的? 我们可以给“id”属性分配一个固定的值吗? 提前致谢。

从当前工作表中的范围获取行?

我不能在活动工作表中获取表名称。 我有一个下拉菜单,将填充工作簿中的工作表。 我有另一个下拉列表,应该在选定的工作表中获得所有的列名(标题)。 不知何故,range.address有“sheet1!2:2”。 这里是我使用的代码: function getRow(worksheetName) { Excel.run(function (ctx) { // Queue a command to write the sample data to the worksheet // at moment i have only one worksheet named "Sheet1" var range = ctx.workbook.worksheets.getItem(worksheetName).getRange().getRow(1); range.load('address'); // Run the queued-up commands, and return a promise to indicate task //completion return ctx.sync().then(function () { […]

Excel Online中的Excel外接程序中的GeneralException

我们正在使用office.js和Excel.runfunction。 目的是点击表格中的单个单元格并捕获该表格中的所有数据。 在Visual Studio 2015运行Excel 2016和Excel API v1.3中成功地进行了testing。 但是,在Excel Online上运行相同时,会在行return ctx.sync().then(function () {创build一个exception。 例外: GeneralException: An internal error has occurred. Debug info: {"code":"GeneralException","message":"An internal error has occurred."} 这个问题发生在所有浏览器中。 目前使用的是Chrome版本63.0.3239.18(官方版本)testing版(64位)。 我们正试图理解为什么它只在Excel Online中失败,而不是在Excel 2016 for Windows中。 这里是没有Office 2013范例的代码。 不幸的是,它会导致相同的错误。 我注意到堆栈跟踪提到了'Promise rejected(async)'。 注意:代码没有被优化。 只是修剪显示数据访问。 // read data from the sheet function readDataExportConfirm() { Excel.run(function (ctx) { // Create […]

无法使用Office.js API从命名范围读取值

我是新joinExcel加载项和Office.js。 我正在尝试探索代码加载项目。 在这里,我试图从命名范围读取值。 首先,我试图获取range对象,然后加载该range值。 我无法获得这些值,但是此代码既不会引发错误,也不会将值输出到控制台: Excel.run(function (ctx) { var range = ctx.workbook.names.getItem("MyRange").getRange(); range.load("values"); return ctx.sync(function () { console.log("required range values -> "); console.log(range.values); }); }).catch(function (e) { console.log("error info is" + e.message); }); 在这里我已经在我的表中有MyRange了。

officejs直接连接数据库

我正在使用Excel的Office.js加载项。 我想直接连接到数据库,这可能吗? 显而易见的是为什么要使用Web服务,但我更喜欢绕过这种方法。 我尝试使用ActiveX对象没有成功。

JS自定义函数没有在“插入函数”对话框中列出

感谢Excel-Custom-Functions示例,我可以在Excel中使用新的JS函数,例如insert =CONTOSO.ADD42(1;2) 但在Excels插入function对话框中,找不到CONTOSOfunction。 我希望看到类别列表中的CONTOSO及其在此类别中的所有function。 在对话框中看到这些function是否需要额外的编码?

用office-js删除excel表中的行

我在我的添加ajax调用它应该在Excel中创build或更新表。 如果表已经存在,它应该删除行并添加新的结果。 当在循环中删除行时,它正在删除一些行,然后我得到以下错误: Debug info: {"code":"InvalidArgument","message":"The argument is invalid or missing or has an incorrect format.","errorLocation":"TableRowCollection.getItemAt"} 我在我的Excel Web插件中的ajax调用如下所示: $.ajax({ //…. }).done(function (data) { Excel.run(function (ctx) { var odataTable = ctx.workbook.tables.getItemOrNullObject("odataTable"); //rows items are not available at this point, that is why we need to load them and sync the context odataTable.rows.load(); return ctx.sync().then(function () { […]

以编程方式打开使用JavaScript办公室API的Excel文档

如何以编程方式打开使用JavaScript办公室API的文件? 有没有办法使用javascript办公室api插入文件或获得访问文档xml? 像这样的东西 Excel.run(function (ctx) { var application = ctx.workbook.application; application.load('newXmlWorkbook', worbookInXmlFormat); return ctx.sync().then(function() { console.log(application.calculationMode); }); }).catch(function(error) { console.log("Error: " + error); if (error instanceof OfficeExtension.Error) { console.log("Debug info: " + JSON.stringify(error.debugInfo)); } });

查找表与select相交

我正在寻找Excel VBA Intersect方法的Javascript等价物。 我需要find活动单元格表。 基本上我所做的一切都是基于用户当前select的表格。 IIRC,目前还没有办法直接做到这一点。 所以我试图做的基本上是这样的: 获取选定的范围(仍然不完美,因为我真的只想要的ActiveCell ,而不是select )。 获取工作表。 循环浏览工作表上的所有表格。 检查每个表格,看看选定的范围是否在表格范围内。 我已经猴子了一下,这是我现在有什么不工作… Excel.run(function(ctx) { var Selection = ctx.workbook.getSelectedRange(); var Tables = ctx.workbook.tables; var TableNames = ctx.workbook.tables.load("name"); for (var i = 0; i < TableNames.items.length; i++) { var Table = ctx.workbook.tables.getItem(TableNames.items[i].name); Table.getRange().load('address'); var Intersect = Selection.getBoundingRect(Table.getRange().address); if (Intersect != null) {return ctx.sync().then(function() { TableNames.items[i].name; […]

与Office-JS链接读写

我有一个问题,如何在Office JS中链同步 – 我想我必须做一个同步来读取值,然后另一个同步写回来 – 必须是简单的,但我找不到一个链接的例子。 基本上我试图编写这个VBA代码的等价物,它通过数组进行读取和写入 Application.ScreenUpdating = False d1 = MicroTimer Set rng1 = Worksheets("Sheet1").Range("A1:A1000") Set rng2 = Worksheets("Sheet1").Range("D1:D1000") var = rng1.Value2 rng2.Value2 = var d2 = (MicroTimer – d1) * 1000 MsgBox d2 甚至更简单 Worksheets("Sheet1").Range("D1:D1000").Value2=Worksheets("Sheet1").Range("A1:A1000").Value2