jacob打印word(.doc)或者excel(.xls) 【java实现】

还是直接贴代码喽

package com.xfzx.test.POI.main;
 
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
 
public class JacobPress {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        printWord("D:/txt.docx");
    //  printExcel("D:/提醒通知明细通用模板.xlsx");
    }
 
    public static void printExcel(String filePath) {
        /**
         * 功能:实现打印工作
         */
        ComThread.InitSTA();
        ActiveXComponent xl = new ActiveXComponent("Excel.Application");
        try {
            // System.out.println("version=" + xl.getProperty("Version"));
            // 不打开文档
            Dispatch.put(xl, "Visible", new Variant(true));
            Dispatch workbooks = xl.getProperty("Workbooks").toDispatch();
            // 打开文档
            Dispatch excel = Dispatch.call(workbooks, "Open", filePath)
                    .toDispatch();
            // 开始打印
            Dispatch.call(excel, "PrintOut");
            xl.invoke("Quit", new Variant[] {});
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 始终释放资源
            ComThread.Release();
        }
    }
 
    public static void printWord(String filePath) {
        ComThread.InitSTA();
        ActiveXComponent wd = new ActiveXComponent("Word.Application");
        try {
            // 不打开文档
            Dispatch.put(wd, "Visible", new Variant(true));
            Dispatch document = wd.getProperty("Documents").toDispatch();
            // 打开文档
            Dispatch doc = Dispatch.invoke(document, "Open", Dispatch.Method,
                    new Object[] { filePath }, new int[1]).toDispatch();
            // 开始打印
            Dispatch.callN(doc, "PrintOut");
            wd.invoke("Quit", new Variant[] {});
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 始终释放资源
            ComThread.Release();
        }
    }
     
    // 获得文件后缀名
    public static String getPostfix(String inputFilePath) {
        String[] p = inputFilePath.split("\\.");
        if (p.length > 0) {// 判断文件有无扩展名
            // 比较文件扩展名
            return p[p.length - 1];
        } else {
            return null;
        }
    }
 
}

  

posted @   郑小明  阅读(2537)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 使用 Dify + LLM 构建精确任务处理应用
点击右上角即可分享
微信分享提示