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 ; } } } |
分类:
java
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 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 构建精确任务处理应用