成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JACOB的復制表格與添加空行

開發 后端
在網上復制粘貼代碼習慣了,所以沒有合適的方法的時候自己都懶得動腦子。沒想到昨天半天谷歌沒找到的解決方法今天早上換個思路幾分鐘就搞定了。jacob是一個操作文檔的組件,這個就不贅述了,想知道的同學可以去百度和谷歌。

在網上復制粘貼代碼習慣了,所以沒有合適的方法的時候自己都懶得動腦子。

沒想到昨天半天谷歌沒找到的解決方法今天早上換個思路幾分鐘就搞定了。

jacob是一個操作文檔的組件,這個就不贅述了,想知道的同學可以去百度和谷歌。

這是網上的jacob操作word的一個復制表格的方法

  1. /**  
  2.      * 在當前文檔指定的位置拷貝表格  
  3.      *   
  4.      * @param pos  
  5.      *            當前文檔指定的位置  
  6.      * @param tableIndex  
  7.      *            被拷貝的表格在word文檔中所處的位置  
  8.      */ 
  9.     public void copyTable(String pos, int tableIndex) {  
  10.         Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();  
  11.         Dispatch table = Dispatch.call(tables, "Item"new Variant(tableIndex))  
  12.                 .toDispatch();  
  13.         Dispatch range = Dispatch.get(table, "Range").toDispatch();  
  14.         Dispatch.call(range, "Copy");  
  15.         if (this.find(pos)) {  
  16.             Dispatch textRange = Dispatch.get(selection, "Range").toDispatch();  
  17.             Dispatch.call(textRange, "Paste");  
  18.         }  
  19.     } 

可是如果是要復制多個表格,并且是在生成過程中復制的話就遇到難題了。

因為如果要使用上面這個方法的話,需要一個標簽提供表格copy時的坐標。

  1. public void insertText(String newText) {    
  2.             Dispatch.put(selection, "Text", newText);    
  3.         }  

insertText這個方法,據實驗和本人猜測,是在***生成的時候才寫入的。

而不是立即實現。

所以使用

  1. /**  
  2.      * 從選定內容或插入點開始查找文本  
  3.      *   
  4.      * @param toFindText  
  5.      *            要查找的文本  
  6.      * @return boolean true-查找到并選中該文本,false-未查找到文本  
  7.      */ 
  8.     public boolean find(String toFindText) {  
  9.         if (toFindText == null || toFindText.equals(""))  
  10.             return false;  
  11.         // 從selection所在位置開始查詢  
  12.         Dispatch find = word.call(selection, "Find").toDispatch();  
  13.         // 設置要查找的內容  
  14.         Dispatch.put(find, "Text", toFindText);  
  15.         // 向前查找  
  16.         Dispatch.put(find, "Forward""True");  
  17.         // 設置格式  
  18.         Dispatch.put(find, "Format""True");  
  19.         // 大小寫匹配  
  20.         Dispatch.put(find, "MatchCase""True");  
  21.         // 全字匹配  
  22.         Dispatch.put(find, "MatchWholeWord""True");  
  23.         // 查找并選中  
  24.         return Dispatch.call(find, "Execute").getBoolean();  
  25.     } 

find方法尋找剛才插入的標識文字始終是false,那么理所當然,

copyTable(String pos, int tableIndex)這個方法是無用的。

所以昨天糾結了一下午。

今天早上突然福臨心至。把copy這個方法的代碼實現看了下。

我擦,我突然發現,無須用什么標簽來替換插入表格,直接尋找到光標插入點不就行了。

稍微修改了下,其實就是刪除了幾行代碼,就變成以下代碼

  1. /**  
  2.      * 在當前插入點拷貝表格  
  3.      *   
  4.      * @param tableIndex  
  5.      *            被拷貝的表格在word文檔中所處的位置  
  6.      */ 
  7.     public void copyTable(int tableIndex) {  
  8.         Dispatch tables = Dispatch.get(doc, "Tables").toDispatch();  
  9.         Dispatch table = Dispatch.call(tables, "Item"new Variant(tableIndex))  
  10.                 .toDispatch();  
  11.         Dispatch range = Dispatch.get(table, "Range").toDispatch();  
  12.         Dispatch.call(range, "Copy");  
  13.         Dispatch.call(selection, "Paste");  
  14.     } 

so,在插入上一個表格之后,再將光標往下移動幾行,就搞定了,根據數據多少,動態復制表格。

往下移動光標的代碼:

  1. /**  
  2.      * 把選定的內容或者插入點向下移動  
  3.      *   
  4.      * @param pos  
  5.      *            移動的距離  
  6.      */ 
  7.     public void moveDown(int pos) {  
  8.         if (selection == null) {  
  9.             selection = Dispatch.get(word, "Selection").toDispatch();  
  10.         }  
  11.         for (int i = 0; i < pos; i++)  
  12.             Dispatch.call(selection, "MoveDown");  
  13.     } 

這樣,就ok了。

但是在生成三個以上表格時,卻發現一個問題,那就是后面的表格緊接上一個表格,不論往下移動幾個光標都木有用。

那么,要如何是好呢。這時候,一個極其有用的代碼就出現了,那就是插入一個空行:

  1. Dispatch.call(selection, "TypeParagraph");//插入空行 

全部搞定。

 

這次的過程給了我一個個赤果果的教訓,那就是不要太依賴谷歌與度娘。

還是多看看源碼吧。

仰山之高,觀水之流…… 省我其心,撫爾之琴……

原文鏈接:http://www.cnblogs.com/kiok1210/archive/2012/05/26/2519223.html

責任編輯:林師授 來源: ~羽的博客
相關推薦

2010-04-06 14:26:41

Oracle復制表

2010-10-20 11:18:38

sql server復

2010-04-01 13:55:50

Oracle復制表

2011-01-26 08:59:11

jQueryjavascriptweb

2010-10-15 11:22:24

MySQL復制表結構

2010-11-23 14:58:05

MySQL復制表數據

2009-12-09 10:51:18

ibmdwJava

2010-11-29 10:59:02

Sybase復制表結構

2011-10-28 16:53:04

Jacob

2022-09-07 09:44:19

loading分頁

2019-11-24 19:17:06

MySQL異步復制全同步復制

2010-09-13 13:44:35

CSS表格CSS表單

2010-09-14 14:23:08

DIV+CSS

2010-07-07 17:33:41

SQL Server復

2023-06-16 07:48:51

DOM對象JS

2009-07-01 18:41:16

JSP編譯

2021-02-26 13:20:48

Shell空行Linux

2017-01-16 16:20:31

Windows 10右鍵菜單操作方法

2012-04-28 09:54:16

Java

2010-05-21 10:14:10

MySQL更改表結構
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区av | 69性欧美高清影院 | 亚洲综合一区二区三区 | 国产小视频在线观看 | 懂色av一区二区三区在线播放 | 天天躁日日躁狠狠很躁 | 精品国产乱码久久久久久图片 | 黄色一级特级片 | 操久久 | 欧美啊v在线观看 | av一区二区三区在线观看 | 日本高清不卡视频 | 伊人成人免费视频 | 天天射色综合 | 黄色在线免费观看 | 欧美视频一区 | 精品免费视频一区二区 | 在线看片网站 | 中文字幕欧美日韩一区 | 91日日| 色婷婷av777| 国产精品1区 | 国产精品久久午夜夜伦鲁鲁 | 在线观看中文字幕 | 在线观看av中文字幕 | 国产精品片 | 亚洲精品免费在线 | 午夜爽爽男女免费观看hd | 午夜激情小视频 | 国产1区在线 | 亚洲视频一区二区三区 | 91欧美 | 理伦毛片 | 亚洲 欧美 日韩 精品 | 81精品国产乱码久久久久久 | 九九热精品视频在线观看 | 夜夜草天天草 | 天天干狠狠操 | 国产欧美一级二级三级在线视频 | 亚洲一区 中文字幕 | 亚洲最大看片网站 |