java web中,如果需要向浏览器microsoft word文档,应使用下面哪个
Jacob解决Word文档的读写问题收藏Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。
使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。Jacob下载的地址为:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368配置:(1)将解压包中的jacob.dll(x86常用,x64)拷到jdk安装目录下的jre\bin文件夹或windows安装路径下的WINDOWS\system32文件夹下(2)将jacob.jar文件拷到classpath下即可常见问题解决:对于”java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\jacob-1.14.3-x86.dll: 由于应用程序配置不正确,应用程序未能启动。
重新安装应用程序可能会纠正”这个问题,可以通过重新下载Jacob的jar及dll文件(最好版本比现在的低,如1.11)解决实例制作(主要功能:标题制作,表格制作,合并表格,替换文本,页眉页脚,书签处理):import com.jacob.activeX.ActiveXComponent;import com.jacob.com.Dispatch;import com.jacob.com.Variant;public class WordOperate {public static void main(String args[]) {ActiveXComponent wordApp = new ActiveXComponent("Word.Application"); // 启动word// Set the visible property as required.Dispatch.put(wordApp, "Visible", new Variant(true));// //设置word可见Dispatch docs = wordApp.getProperty("Documents").toDispatch();// String inFile = "d:\\test.doc";// Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method,// new Object[] { inFile, new Variant(false), new Variant(false)},//参数3,false:可写,true:只读// new int[1]).toDispatch();//打开文档Dispatch document = Dispatch.call(docs, "Add").toDispatch();// create new documentString userName = wordApp.getPropertyAsString("Username");// 显示用户信息System.out.println("用户名:" + userName);// 文档对齐,字体设置////////////////////////Dispatch selection = Dispatch.get(wordApp, "Selection").toDispatch();Dispatch align = Dispatch.get(selection, "ParagraphFormat").toDispatch(); // 行列格式化需要的对象Dispatch font = Dispatch.get(selection, "Font").toDispatch(); // 字型格式化需要的对象// 标题处理////////////////////////Dispatch.put(align, "Alignment", "1"); // 1:置中 2:靠右 3:靠左Dispatch.put(font, "Bold", "1"); // 字型租体Dispatch.put(font, "Color", "1,0,0,0"); // 字型颜色红色Dispatch.call(selection, "TypeText", "Word文档处理"); // 写入标题内容Dispatch.call(selection, "TypeParagraph"); // 空一行段落Dispatch.put(align, "Alignment", "3"); // 1:置中 2:靠右 3:靠左Dispatch.put(selection, "Text", " ");Dispatch.call(selection, "MoveDown"); // 光标标往下一行//表格处理////////////////////////Dispatch tables = Dispatch.get(document, "Tables").toDispatch();Dispatch range = Dispatch.get(selection, "Range").toDispatch();Dispatch table1 = Dispatch.call(tables, "Add", range, new Variant(3),new Variant(2), new Variant(1)).toDispatch(); // 设置行数,列数,表格外框宽度// 所有表格Variant tableAmount = Dispatch.get(tables, "count");System.out.println(tableAmount);// 要填充的表格Dispatch t1 = Dispatch.call(tables, "Item", new Variant(1)).toDispatch();Dispatch t1_row = Dispatch.get(t1, "rows").toDispatch();// 所有行int t1_rowNum = Dispatch.get(t1_row, "count").getInt();Dispatch.call(Dispatch.get(t1, "columns").toDispatch(), "AutoFit");// 自动调整int t1_colNum = Dispatch.get(Dispatch.get(t1, "columns").toDispatch(),"count").getInt();System.out.println(t1_rowNum + " " + t1_colNum);for (int i = 1; i 评论0 0 0
dsoframer c#的问题
dsoframer.ocx中我只用过操作word这是我的删除标签代码,其中用到了word操作,虽然没有文字替换功能,但是原理是一样的。希望对你有用 if (!this.doc.Bookmarks.Exists(bookMarkName)) { RefreshBookMarkList(); return; } else { object tempobject = bookMarkName; this.doc.Bookmarks.get_Item(ref tempobject).Delete();//删除标签,但不删除文字 this.doc.Bookmarks. this.listBox4BookMark.Items.Remove(bookMarkName); }。
转载请注明出处51数据库 » dsoframerword只读
蒙奇迪孤狼