Jacob代码编写的注意事项集

发布于:2024-06-18 ⋅ 阅读:(170) ⋅ 点赞:(0)

注意事项一:

慎用

ComThread.InitSTA();
ComThread.Release();

因为经常会在 ComThread.Release(); 发生阻塞,导致程序一直卡在这里,不能被调用;

建议不要使用这个初始化和释放线程的代码,看似很高级,其实没啥用而且会出现很多东西

 变为如下代码:

package com.example.worddemo.test.jacob;
import com.example.worddemo.test.jacob.enums.FileMacroEnum;
import com.example.worddemo.utils.IdUtil;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

/**
 * @program: word-demo
 * @description: 运用宏  有返回值
 * @author: wjl
 * @create: 2024-01-14 22:54
 **/
public class RunMacroWithReturn {

    // 这里需要根据当前环境安装的是 MicroSoft Office还是WPS来选择
    // 如果安装的是WPS,则需要使用 KWPS.Application
    // 如果安装的是微软的 Office,需要使用 Word.Application
    private static final String MS_OFFICE_APPLICATION = "Word.Application";
    private static final String WPS_OFFICE_APPLICATION = "KWPS.Application";

    public static void main(String[] args) {
        FileMacroEnum macroEnum = FileMacroEnum.WORD_2003_DOC;
        String targetPath = "D:\\"+ IdUtil.upper()+macroEnum.getSuffix();
        String wordPath =  "D:\\4.doc";
        try {
            ActiveXComponent app = new ActiveXComponent( WPS_OFFICE_APPLICATION);
            app.setProperty("Visible", new Variant(false));
            Dispatch docs = app.getProperty("Documents").toDispatch();
            //打開編輯囂
            Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[] {wordPath, new Variant(false), new Variant(true)} , new int[1]).toDispatch(); //打開word文檔
            //  parameter  是宏的名称
            String string = app.invoke("Run", "GetFirstParagraphText").getString();
            System.out.println(string);
            Dispatch.call(doc, "SaveAs", targetPath, macroEnum.getMacro());
            Dispatch.call(doc, "Close", true);
            app.invoke("Quit",0);
        }catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("转换后的文件路径为:"+targetPath);
    }



}

学习内容:

提示:这里可以添加要学的内容

例如:

  1. 搭建 Java 开发环境
  2. 掌握 Java 基本语法
  3. 掌握条件语句
  4. 掌握循环语句

学习时间:

提示:这里可以添加计划学习的时间

例如:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习产出:

提示:这里统计学习计划的总量

例如:

  • 技术笔记 2 遍
  • CSDN 技术博客 3 篇
  • 习的 vlog 视频 1 个

网站公告

今日签到

点亮在社区的每一天
去签到