- //java 调用word
- package com.test;
- import com.jacob.activeX.ActiveXComponent;
- import com.jacob.com.Dispatch;
- import com.jacob.com.Variant;
- public class WordBean extends java.awt.Panel {
- private ActiveXComponent MsWordApp = null;
- private Dispatch document = null;
- public WordBean() {
- super();
- }
- // 打开word文档
- public void openWord(boolean makeVisible) {
- if (MsWordApp == null) {
- MsWordApp = new ActiveXComponent("Word.Application");
- }
- // 设置打开word文档是否可见
- Dispatch.put(MsWordApp, "Visible", new Variant(makeVisible));
- }
- // 打开wordDocument
- public void openWordDocument(String openFile) {
- Dispatch documents = Dispatch.get(MsWordApp, "Documents").toDispatch();
- document = Dispatch.invoke(documents, "Open",Dispatch.Method,
- new Object[] { openFile, new Variant(false),
- new Variant(true) }, new int[1]).toDispatch();
- }
- // 创建word文档
- public void createNewDocument() {
- // Find the Documents collection object maintained by Word
- Dispatch documents = Dispatch.get(MsWordApp, "Documents").toDispatch();
- document = Dispatch.call(documents, "Add").toDispatch();
- }
- // 插入内容
- public void insertText(String textToInsert) {
- // Get the current selection within Word at the moment. If
- // a new document has just been created then this will be at
- // the top of the new doc
- Dispatch selection = Dispatch.get(MsWordApp, "Selection").toDispatch();
- Dispatch.put(selection, "Text", textToInsert);
- }
- // 文件另存为
- public void saveFileAs(String saveFile) {
- Dispatch.invoke(document, "SaveAs", Dispatch.Method, new Object[] {
- saveFile, new Variant(0) }, new int[1]);
- Variant variant = new Variant(false);
- Dispatch.call(document, "Close", variant);
- // Dispatch.call(document, "SaveAs", saveFile);
- }
- public void printFile() {
- // Just print the current document to the default printer
- Dispatch.call(document, "PrintOut");
- }
- // 关闭word文档
- public void closeDocument() {
- // 0 = wdDoNotSaveChanges
- // -1 = wdSaveChanges
- // -2 = wdPromptToSaveChanges
- Dispatch.call(document, "Close", new Variant(0));
- document = null;
- }
- // 关闭officeWord
- public void closeWord() {
- Dispatch.call(MsWordApp, "Quit");
- MsWordApp = null;
- document = null;
- }
- // 替换文本
- public void replace(String oldText, String newText) {
- Dispatch selection = Dispatch.get(MsWordApp, "Selection").toDispatch();
- Dispatch find = MsWordApp.call(selection, "Find").toDispatch();
- Dispatch.put(find, "Text", oldText);
- Dispatch.call(find, "Execute");
- Dispatch.put(selection, "Text", newText);
- Dispatch.call(selection, "MoveRight");
- }
- }
- package com.test;
- public class WordTest {
- public static void main(String[] args) {
- WordBean word = new WordBean();
- word.openWord(false);
- // word.createNewDocument();
- // word.insertText("1234567890");
- // word.saveFileAs("d:""1.doc");
- word.openWordDocument("d:""1.doc");
- word.replace("2", "xx"); //替换
- word.replace("3", "yy");
- word.saveFileAs("d:""2.doc");
- // word.closeDocument();
- word.closeWord();
- }
- }
Java 调用word
最新推荐文章于 2024-06-26 16:09:23 发布