基于JavaScript的Excel Office在Visual Studio中
#javascript #网络开发人员 #excel #addin

如果您在Office加载项中构建办公应用程序,则可以使用这些技术HTML,CSS和JavaScript,并与Word,Excel,PowerPoint,OneNote,OneNote,Project,Project和Outlook进行交互。您的代码在多个平台上运行,包括Windows,Mac,Ipad和浏览器。

Office加载项可以执行任何网页可以在浏览器内部执行的操作。办公室加载项在Visual Studio中使用以下平台。

向办公室客户添加新功能:您可以将外部数据带入办公室,自动化办公室文档,公开办公室客户中的第三方功能等等。

交互式对象可以嵌入到Office文档中:在Office加载项中,您可以嵌入地图,图表和交互式可视化,因此用户可以将其添加到自己的Excel电子表格和PowerPoint演示文稿中。

com和vsto附加组件与Office-Add-ins不同吗?

COM或VSTO加载项是较早的Office集成,仅在Windows上的办公室运行。办公室加载项不涉及在用户设备上运行的代码。

Office加载项提供了以下优于使用VBA,COM或VSTO构建的加载项:

  • 它是跨平台支持。办公室加载项在网络,Windows,Mac和iPad上运行。
  • 这是一个集中的部署和分配。管理员可以在组织中的中心部署办公室加载项。
  • 可以通过AppSource访问很容易。通过将其提交给AppSource,您的解决方案可以向广泛的受众提供。
  • 它基于标准的Web技术。您将使用您喜欢建立办公室的任何人。

办公室加载项的组件

Office加载项基本上有两个组件

XML清单文件:清单文件定义了各种设置,包括您的加载项如何与Office客户端集成。

您自己的Web应用程序:它需要在Web服务器或Web托管服务上托管,例如Microsoft Azure。

显现

它是加载项的设置和功能,例如:

  • 在加载项中,我们看到了显示名称,描述ID,版本和默认场所。
  • 您可以与办公室集成。
  • 您可以添加加载项的权限级别和数据访问要求。

Web应用程序

您可以为Office应用程序使用静态HTML页面构建。您的HTML页面与Office文档或任何其他Internet资源进行交互。因此,您可以同时使用Office应用程序中使用的客户端和服务器端技术。

阅读更多:What Is Xml Manifest In Office Add-in?

扩展和与办公室客户互动

有两种方法可以扩展和与Office Client的应用程序进行交互。

  • 您可以使用任何办公应用程序扩展功能。
  • 您可以使用Excel或PowerPoint Office应用程序创建一个新对象。

创建Excel任务窗格加载项

先决条件

  • 使用最新的LTS版本下载Node.js。
  • 您还可以下载最新版本的Yeoman和Yeoman Generator用于Office Gudd-ins,并在全球安装这些工具,并通过命令提示符运行这些命令。

示例:

    npm install -g yo generator-office

创建您的加载项项目

您可以运行以下命令使用Yeoman Generator创建一个加载项项目。

示例:

    yo office

Image description
图:这些是加载项项目的以下信息

创建一个表

您可以按照创建表的步骤操作。您可以测试当前版本Excel的加载项支持。您可以在工作表中添加一个表格,用数据占用表格,然后格式化。

编码加载项

您的Excel加载项项目在视觉工作室代码中打开。

您可以在任务窗格文件夹中打开taskpane.html文件。

在taskpane.html文件中,您可以看到主标签元素并删除主标签和关闭主标签之间的所有行。

打开主标签后,您可以添加以下行。

示例:

<button class="ms-button" id="createTable">Create Table</button> 

您可以在任务窗格文件夹中打开taskpane.js文件,taskpane.js文件包含Office JavaScript API代码,该代码可以在任务窗格和Office客户端应用程序之间进行互动。

您可以通过执行以下内容删除对运行按钮和Run()方法的所有引用。

  • 删除line document.getElementById(运行).onclick = run;
  • 删除整个Run()函数。

可以致电Office.onready方法后,您会看到(info.host === office.hosttype.excel)

在第一部分中,您的代码确定用户的Excel版本是否支持包含所有JavaScript API的Excel.js版本。您可以使用条件块的主体隐藏或禁用称为无支撑API的UI。如果您使用户仍然可以利用由其版本的Excel支持的加载项部分。

在第二部分中,此代码添加了创建按钮的事件处理程序。

示例:

  if(!Office.context.requirements.isSetSupported('ExcelApi','1.7')){
    console.log("This Javascript API is not available ")
  }
document.getElementById("createTable").onclick= createTable;  

您可以将以下功能添加到文件末尾。

  • 在cretetable函数中,您可以通过excel.run函数通过。此功能不会立即执行。
  • 返回context.sync()方法将所有排队的命令发送到Excel以执行。
  • 捕获块遵循excel.run()函数。

Excel Add-in Development解决方案的一个目的地?今天询问。

示例:

    function createTable() {
      Excel.run(function (context){
        return context.sync();
      })
      .catch(function (error){
        console.log("Error: "+ error);
        if(error instanceof OfficeExtension.Error) {
          console.log("Debug info: "+JSON.stringify(error.debugInfo));
        }
        });
    }

首先,如果您传递了四个值,则可以将表格A1列为D1。然后,您定义表名。

示例:

    var currentSheet = context.workbook.worksheets.getActiveWorksheet();
    var employeeTable = currentSheet.tables.add("A1:D1");
employeeTable.name = "EmployeeTable";

您可以使用getheaderrowrange()方法添加员工的数据。

示例

    employeeTable.getHeaderRowRange().values = [["EmployeeID","Name","Designation","DOB"]];
    employeeTable.rows.add([
      ["Emp1","Bhavin","Sales","12/1/1997"],
      ["Emp2","Hardik","Team Leader","10/12/1997"],
      ["Emp3","Gaurav","Project Manger","12/12/1997"],
      ["Emp4","Maulik","Sales","21/1/1997"],
      ["Emp5","Tejas","Project Manager","25/5/1997"],
      ["Emp6","Maulik","Team Leader","19/11/1997"]
  ]);

之后,您可以使用getrange()方法拟合列和行。

示例:

    employeeTable.getRange().format.autofitColumns();
    employeeTable.getRange().format.autofitRows();

测试加载项

如果您的项目在桌面应用程序中运行,则可以传递此命令。

  npm run start

如果您的项目运行在Web浏览器中,则可以传递此命令

  npm start run:web

结论

在此博客中,我们创建了一个带有Excel加载项的表。您还可以在Excel加载项中实现排序表,过滤表和图表等。