❶ 賓士glc怎麼激活自動同步
1、首先在車輛多媒體系統左上角開啟配置文件選擇。
2、其次創建新配置文件。
3、然後在車輛多媒體系統中,導航至配置文件選擇的一般設置。
4最後點擊立即同步配置文件,並等待同步完成即可。
一 准備工作
先了解一下概念 JACOB 就是 JAVA Bridge的縮寫 提供自動化的訪問的功能 也是通過JNI功能訪問windows平台下的組件或者win 系統庫的 這是一個開始於 年的開源項目的成果 有很多使用者對該項目進行了修改 做出了自己的貢獻
Jacob下載地址 ?group_id= &package_id=
我在這里下載了Jacob 和jacob 的版本兩個版本
這里下載的是目前最新的Jacob 的Release版
另外java操作word方式還有(個人認為通過jacob最好 自己可以擴展 網上除poi之外幾乎全是java 技術實現的):
( ):Apache POI Java API To Access Microsoft Format Files();對word處理不夠強處理Excel功能可以 但是全是通過java完成的 不需 要組件支持;
( ):java word 是一個在java程序中調用 MS Office Word 文檔的組件(類庫) 該組件提供了一組簡單的介面 以便java程序調用他的服務操作Word 文檔 (好象也是用的java 技術);
( )web開發語言操作word的功能最好還是用第三方的控制項 看看這個SOAOFFICE 還可以使用js 寫VBA呢
二 安裝Jacob
Jacob的安裝非常的簡單 我們解開下載的jacob_ zip 在文件夾中找到jacob dll和jacob jar兩個文件 如果是 Jacob 則是jacob x dll( 位 機和jacob x dll( 位)和 jacob jar兩個文件 Jacob dll直接放到系統的system 文件夾下就行了 連注冊都不用的(或者拷貝到jdk或者jre的bin目 錄下也行 當前測試文件所在的目錄也行 就是只要在java library path中就可以) 而jacob jar設置到classpath中去就 可以了 或者在IDE開發環境的工程中設置擴展庫也一樣的 我是這樣使用的將jacob x dll或復制 到%Tomcat %in目錄下將jacob jar復制到%Tomcot %Sharelib目錄下 我使用過程中感覺放到這里是一個最終解決 辦法 當你放哪都有問題的時候 我這樣用之後再沒有出過因為系統不一樣出現的各種各樣的問題 當然你作的是web的項目
注意使用jacob一寫要安裝word 我裝的word 如果是操作word 就不用jacob了(好像這方面的API)
對jacob dll幾種配置方法 (網上看到)
: :
把jacob dll文件 復制到 windowssystem 目錄下 (注 我用的時候這個方法不能運行)
把jacob dll放入 Javajdk _ jrein目錄下 把jacob jar放入 Javajdk _ jrelibext目錄下 可以正常運行
把jacob dll放入 glcsrc目錄下 把jacob jar放入WEB INFlib目錄下 也是可以正常運行
三 使用(以下是我改寫的一個word操作類 希望有興趣的朋友完善 記得發給我一份)
//注意java操作word關鍵是定位操作對象;
import jacob activeX ActiveXComponent;
import Dispatch;
import Variant;
/**
* jacob操作MSword類
* @author
*/
public class WordBean {
// word文檔
private Dispatch doc;
// word運行程序對象
private ActiveXComponent word;
// 所有word文檔集合
private Dispatch documents;
// 選定的范圍或插入點
private Dispatch selection;
private boolean saveOnExit = true;
public WordBean()throws Exception{
if (word == null) {
word = new ActiveXComponent( Word Application );
word setProperty( Visible new Variant(false)); //不可見打開word
word setProperty( AutomationSecurity new Variant( )); //禁用宏
}
if (documents == null)
documents = word getProperty( Documents ) toDispatch();
}
/**
* 設置退出時參數
*
* @param saveOnExit
* boolean true 退出時保存文件 false 退出時不保存文件
*/
public void setSaveOnExit(boolean saveOnExit) {
this saveOnExit = saveOnExit;
}
/**
* 創建一個新的word文檔
*
*/
public void createNewDocument() {
doc = Dispatch call(documents Add ) toDispatch();
selection = Dispatch get(word Selection ) toDispatch();
}
/**
* 打開一個已存在的文檔
*
* @param docPath
*/
public void openDocument(String docPath) {
closeDocument();
doc = Dispatch call(documents Open docPath) toDispatch();
selection = Dispatch get(word Selection ) toDispatch();
}
/**
*只讀 打開一個保護文檔
* @param docPath 文件全名
* @param pwd 密碼
*/
public void openDocumentOnlyRead(String docPath String pwd)throws Exception {
closeDocument();
// doc = Dispatch invoke(documents Open Dispatch Method
// new Object[]{docPath new Variant(false) new Variant(true) new Variant(true) pwd}
// new int[ ]) toDispatch();//打開word文件
doc = Dispatch callN(documents Open new Object[]{docPath new Variant(false)
new Variant(true) new Variant(true) pwd new Variant(false)}) toDispatch();
selection = Dispatch get(word Selection ) toDispatch();
}
public void openDocument(String docPath String pwd)throws Exception {
closeDocument();
doc = Dispatch callN(documents Open new Object[]{docPath new Variant(false)
new Variant(false) new Variant(true) pwd}) toDispatch();
selection = Dispatch get(word Selection ) toDispatch();
}
/**
* 把選定的內容或插入點向上移動
*
* @param pos
* 移動的距離
*/
public void moveUp(int pos) {
if (selection == null)
selection = Dispatch get(word Selection ) toDispatch();
for (int i = ; i < pos; i++)
Dispatch call(selection MoveUp );
}
/**
* 把選定的內容或者插入點向下移動
*
* @param pos
* 移動的距離
*/
public void moveDown(int pos) {
if (selection == null)
selection = Dispatch get(word Selection ) toDispatch();
for (int i = ; i < pos; i++)
Dispatch call(selection MoveDown );
}
/**
* 把選定的內容或者插入點向左移動
*
* @param pos
* 移動的距離
*/
public void moveLeft(int pos) {
if (selection == null)
selection = Dispatch get(word Selection ) toDispatch();
for (int i = ; i < pos; i++) {
Dispatch call(selection MoveLeft );
}
}
/**
* 把選定的內容或者插入點向右移動
*
* @param pos
* 移動的距離
*/
public void moveRight(int pos) {
if (selection == null)
selection = Dispatch get(word Selection ) toDispatch();
for (int i = ; i < pos; i++)
Dispatch call(selection MoveRight );
}
/**
* 把插入點移動到文件首位置
*
*/
public void moveStart() {
if (selection == null)
selection = Dispatch get(word Selection ) toDispatch();
Dispatch call(selection HomeKey new Variant( ));
}
/**
* 從選定內容或插入點開始查找文本
*
* @param toFindText
* 要查找的文本
* @return boolean true 查找到並選中該文本 false 未查找到文本
*/
@SuppressWarnings( static access )
public boolean find(String toFindText) {
if (toFindText == null || toFindText equals( ))
return false;
// 從selection所在位置開始查詢
Dispatch find = word call(selection Find ) toDispatch();
// 設置要查找的內容
Dispatch put(find Text toFindText);
// 向前查找
Dispatch put(find Forward True );
// 設置格式
Dispatch put(find Format True );
// 大小寫匹配
Dispatch put(find MatchCase True );
// 全字匹配
Dispatch put(find MatchWholeWord True );
// 查找並選中
return Dispatch call(find Execute ) getBoolean();
}
/**
* 把選定選定內容設定為替換文本
*
* @param toFindText
* 查找字元串
* @param newText
* 要替換的內容
* @return
*/
public boolean replaceText(String toFindText String newText) {
if (!find(toFindText))
return false;
Dispatch put(selection Text newText);
return true;
}
/**
* 全局替換文本
*
* @param toFindText
* 查找字元串
* @param newText
* 要替換的內容
*/
public void replaceAllText(String toFindText String newText) {
while (find(toFindText)) {
Dispatch put(selection Text newText);
Dispatch call(selection MoveRight );
}
}
/**
* 在當前插入點插入字元串
*
* @param newText
* 要插入的新字元串
*/
public void insertText(String newText) {
Dispatch put(selection Text newText);
}
/**
*
* @param toFindText
* 要查找的字元串
* @param imagePath
* 圖片路徑
* @return
*/
public boolean replaceImage(String toFindText String imagePath) {
if (!find(toFindText))
return false;
Dispatch call(Dispatch get(selection InLineShapes ) toDispatch()
AddPicture imagePath);
return true;
}
/**
* 全局替換圖片
*
* @param toFindText
* 查找字元串
* @param imagePath
* 圖片路徑
*/
public void replaceAllImage(String toFindText String imagePath) {
while (find(toFindText)) {
Dispatch call(Dispatch get(selection InLineShapes ) toDispatch()
AddPicture imagePath);
Dispatch call(selection MoveRight );
}
}
/**
* 在當前插入點插入圖片
*
* @param imagePath
* 圖片路徑
*/
public void insertImage(String imagePath) {
Dispatch call(Dispatch get(selection InLineShapes ) toDispatch()
AddPicture imagePath);
}
/**
* 合並單元格
*
* @param tableIndex
* @param fstCellRowIdx
* @param fstCellColIdx
* @param secCellRowIdx
* @param secCellColIdx
*/
public void mergeCell(int tableIndex int fstCellRowIdx int fstCellColIdx
int secCellRowIdx int secCellColIdx) {
// 所有表格
Dispatch tables = Dispatch get(doc Tables ) toDispatch();
// 要填充的表格
Dispatch table = Dispatch call(tables Item new Variant(tableIndex))
toDispatch();
Dispatch fstCell = Dispatch call(table Cell
new Variant(fstCellRowIdx) new Variant(fstCellColIdx))
toDispatch();
Dispatch secCell = Dispatch call(table Cell
new Variant(secCellRowIdx) new Variant(secCellColIdx))
toDispatch();
Dispatch call(fstCell Merge secCell);
}
/**
* 在指定的單元格里填寫數據
*
* @param tableIndex
* @param cellRowIdx
* @param cellColIdx
* @param txt
*/
public void putTxtToCell(int tableIndex int cellRowIdx int cellColIdx
String txt) {
// 所有表格
Dispatch tables = Dispatch get(doc Tables ) toDispatch();
// 要填充的表格
Dispatch table = Dispatch call(tables Item new Variant(tableIndex))
toDispatch();
Dispatch cell = Dispatch call(table Cell new Variant(cellRowIdx)
new Variant(cellColIdx)) toDispatch();
Dispatch call(cell Select );
Dispatch put(selection Text txt);
}
/**
* 獲得指定的單元格里數據
*
* @param tableIndex
* @param cellRowIdx
* @param cellColIdx
* @return
*/
public String getTxtFromCell(int tableIndex int cellRowIdx int cellColIdx) {
// 所有表格
Dispatch tables = Dispatch get(doc Tables ) toDispatch();
// 要填充的表格
Dispatch table = Dispatch call(tables Item new Variant(tableIndex))
toDispatch();
Dispatch cell = Dispatch call(table Cell new Variant(cellRowIdx)
new Variant(cellColIdx)) toDispatch();
Dispatch call(cell Select );
String ret = ;
ret = Dispatch get(selection Text ) toString();
ret = ret substring( ret length() ); //去掉最後的回車符;
return ret;
}
/**
* 在當前文檔拷貝剪貼板數據
* @param pos
*/
public void pasteExcelSheet(String pos) {
moveStart();
if (this find(pos)) {
Dispatch textRange = Dispatch get(selection Range ) toDispatch();
Dispatch call(textRange Paste );
}
}
/**
* 在當前文檔指定的位置拷貝表格
*
* @param pos
* 當前文檔指定的位置
* @param tableIndex
* 被拷貝的表格在word文檔中所處的位置
*/
public void Table(String pos int tableIndex) {
// 所有表格
Dispatch tables = Dispatch get(doc Tables ) toDispatch();
// 要填充的表格
Dispatch table = Dispatch call(tables Item new Variant(tableIndex))
toDispatch();
Dispatch range = Dispatch get(table Range ) toDispatch();
Dispatch call(range Copy );
if (this find(pos)) {
Dispatch textRange = Dispatch get(selection Range ) toDispatch();
Dispatch call(textRange Paste );
}
}
/**
* 在當前文檔指定的位置拷貝來自另一個文檔中的表格
*
* @param anotherDocPath
* 另一個文檔的磁碟路徑
* @param tableIndex
* 被拷貝的表格在另一格文檔中的位置
* @param pos
* 當前文檔指定的位置
*/
public void TableFromAnotherDoc(String anotherDocPath int tableIndex
String pos) {
Dispatch doc = null;
try {
doc = Dispatch call(documents Open anotherDocPath)
toDispatch();
// 所有表格
Dispatch tables = Dispatch get(doc Tables ) toDispatch();
// 要填充的表格
Dispatch table = Dispatch call(tables Item
new Variant(tableIndex)) toDispatch();
Dispatch range = Dispatch get(table Range ) toDispatch();
Dispatch call(range Copy );
if (this find(pos)) {
Dispatch textRange = Dispatch get(selection Range )
toDispatch();
Dispatch call(textRange Paste );
}
} catch (Exception e) {
e printStackTrace();
} finally {
if (doc != null) {
Dispatch call(doc Close new Variant(saveOnExit));
doc = null;
}
lishixin/Article/program/Java/hx/201311/26342