VBA实现为Excel中自定义名称的单元格添加批注

一.本地office中经过建立宏实现此需求

1.打开一个Excel文件,在须要插入批注的单元格右击-定义名称(myTable1).点击菜单栏-视图-宏-查看宏-输入宏名-建立宏javascript

        ​

2.进入VBA编辑界面,将如下代码拷贝-保存-关闭VBA界面html

 
  1. Sub addComment()java

  2.  
  3.     ActiveSheet.Application.Sheets("Sheet1").Range("myTable1").Selectjquery

  4.  
  5.     ActiveCell.AddComment ("Hello")程序员

  6.  
  7.     ActiveCell.Comment.Visible = Trueweb

  8.  
  9. End Sub;浏览器

  ​

3.点击菜单栏-视图-宏-查看宏-点击刚才插入的宏名-执行服务器

   结果以下less

    ​

可是对于OA系统来讲,不少业务都是须要用户在网页上直接操做的,若是让用户在客户端本地office操做完成再将文件上传至服务器,总会显得咱们的系统作的不够智能。jsp

那么需求来了:如何才能实现让用户傻瓜式操做在线打开office文档,而且让程序在打开文档以前作一些事(好比在某一区域设置值,为某一个单元格赋值,设置字体段落格式,添加批注)呢。当你毫无思路时那就证实这个需求用到了你没有涉及过的技术点,这个时候就须要找一些插件来实现了。

我当时发现了一款插件叫作pageoffice很轻松的解决了此需求。当时将他集成到个人系统中跑起来只用了半天的时间。而且后来测试发现他对服务器要求并不苛刻,支持Windows、Linux等主流服务器系统。而且在客户端支持火狐、谷歌、IE、360等主流浏览器。在他们官网http://www.zhuozhengsoft.com/index.html下载程序包后会提供免费的注册码(据说永久正式版也不过两三千,可是我没购买正式版他们官方的技术支持也一直对我提供支持而且没有不耐烦哈哈哈哈)。接下来我为你们展现一下我实现的新建批注的效果。

2、集成pageoffice在线打开文档实现为Excel中自定义名称的单元格添加批注

1.下载官网程序包,根据部署指引将pageoffice集成到本身项目中(具体流程再也不赘述,官方指引很详细,实在不行能够去官网联系他们技术支持)

   下载地址
      http://www.zhuozhengsoft.com/dowm/
   部署步骤
      http://www.zhuozhengsoft.com/PageOffice/guide/

2.在须要打开文档的连接处经过pobrowser打开文档所在页面

<br><a href="javascript:POBrowser.openWindowModeless('excelcomment/excel.jsp','width=1200px;height=800px;')" style=" color:#0108f6; text-decoration:underline;">excelComment</a>

注意:这里的<head></head>中须要引入pageoffice官方提供的两个js文件

 
  1. <script type="text/javascript" src="jquery.min.js"></script>

  2.  
  3. <script type="text/javascript" src="pageoffice.js" id="po_js_main"></script>

3.excel.jsp中代码以下

 
  1. <%@ page import="com.zhuozhengsoft.pageoffice.PageOfficeCtrl" %>

  2.  
  3. <%@ page import="com.zhuozhengsoft.pageoffice.OpenModeType" %>

  4.  
  5. <%@ page contentType="text/html;charset=UTF-8" language="java" %>

  6.  
  7. <%

  8.  
  9.     PageOfficeCtrl poctrl = new PageOfficeCtrl(request);

  10.  
  11.     poctrl.setServerPage(request.getContextPath()+"/poserver.zz");

  12.  
  13.     poctrl.setJsFunction_AfterDocumentOpened("afterOpen()");

  14.  
  15.     poctrl.webOpen("doc/test.xls",OpenModeType.xlsNormalEdit,"zs");

  16.  
  17. %>

  18.  
  19. <html>

  20.  
  21. <head>

  22.  
  23.     <title>Title</title>

  24.  
  25.     <script type="text/javascript">

  26.  
  27.         function afterOpen() {

  28.  
  29.  
  30.  
  31.             var sMac = 'Sub addCom() \r\n '

  32.  
  33.                 + 'ActiveSheet.Application.Sheets("Sheet1").Range("myTable1").Select \r\n '

  34.  
  35.                 + 'ActiveCell.AddComment ("Hello")\r\n'

  36.  
  37.                 + 'ActiveCell.Comment.Visible = True\r\n'

  38.  
  39.                 + 'End Sub';

  40.  
  41.             document.getElementById("PageOfficeCtrl1").RunMacro("addCom", sMac);

  42.  
  43.  
  44.  
  45.         }

  46.  
  47.     </script>

  48.  
  49. </head>

  50.  
  51. <body>

  52.  
  53. <%=poctrl.getHtmlCode("PageOfficeCtrl1")%>

  54.  
  55. </body>

  56.  
  57. </html>

这样就会经过poctrl.webopen方法打开doc/test.xls文档,而且为文档中名为myTable1的单元格插入批注"hello"

4.实现效果

    

三.除Java以外,pageoffice也对ASP.NET和PHP提供支持,相关程序员同窗能够自行去官网了解,再此再也不赘述.

相关文章
相关标签/搜索