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提供支持,相關程序員同窗能夠自行去官網瞭解,再此再也不贅述.

相關文章
相關標籤/搜索