java生成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 document String 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 <= t1_rowNum; i++) { for (int j = 1; j <= t1_colNum; j++) { Dispatch cell = Dispatch.call(t1, "Cell", new Variant(i), new Variant(j)).toDispatch();// 行,列 Dispatch.call(cell, "Select"); Dispatch.put(selection, "Text", "cell" + i + j); // 写入word的内容 Dispatch.put(font, "Bold", "0"); // 字型租体(1:租体 0:取消租体) Dispatch.put(font, "Color", "1,1,1,0"); // 字型颜色 Dispatch.put(font, "Italic", "1"); // 斜体 1:斜体 0:取消斜体 Dispatch.put(font, "Underline", "1"); // 下划线 Dispatch Range = Dispatch.get(cell, "Range").toDispatch(); String cellContent = Dispatch.get(Range, "Text").toString(); System.out.println((cellContent.substring(0, cellContent .length() - 1)).trim()); } Dispatch.call(selection, "MoveDown"); // 光标往下一行(才不会输入盖过上一输入位置) } //合并单元格//////////////////////// Dispatch.put(selection, "Text", " "); Dispatch.call(selection, "MoveDown"); // 光标标往下一行 Dispatch range2 = Dispatch.get(selection, "Range").toDispatch(); Dispatch table2 = Dispatch.call(tables, "Add", range2, new Variant(8), new Variant(4), new Variant(1))....
在word文档中怎样替换文字?
1、基本替换 用word替换文本是很简单的:首先打开一个文档,执行“编辑一〉替换”(或按“Ctrl+H”组合键),打开“查找和替换”对话框,在“查找内容”右侧的方框中输入需要替换的字符,在“替换为”右侧的方框中输入替换后的字符,然后单击“全部替换”按钮即可。
2、格式替换 如果需要突出文档中某些特定字符,可以通过格式替换的方法将那些字符设置成不同字体格式(如“加粗、倾斜”等)。
打开“查找和替换”对话框,在 “查找内容”和“替换为”右侧的方框中输入同样字符,然后将光标定在“替换为”右侧方框中,单击“高级”按钮展开高级选项,单击其中的“格式”按钮,在随后弹出的快捷菜单中,选择“字体”选项,打开“替换字体”对话框,将字型设置成“加粗倾斜”格式,点击“确定”返回,再单击“全部替换”按钮即可。
3、空行替换 用Word编辑从网上粘贴过来的文本时,常常含有多余空行,手工删除既累又烦,何不用空行替换的方法呢?打开“查找和替换”对话框,在“查找内容”右侧的方框中输入“^p^p”(p一定是小写格式),在“替换为”右侧的方框中输入“^p”,然后根据空行的多少,反复按几次“全部替换”按钮,就完工了。
4、图片替换 如果一篇文档中,多处需要输入某个小图片,那么先在需要输入图片的地方输入某个特殊字母(笔者用的是五笔输入法,所以通常用字母“z”),待文章全部录入完成后,通过“插入一〉图片一〉来自文件”等方法将小图片插入一个到文档中,并选中该图片,执行“复制”操作,再打开“查找和替换”对话框,在 “查找内容”后面的方框中输入字母“z”(默认情况下,可以不考虑大小写问题),在“替换为”后面的方框中输入“^c”,单击“全部替换”按钮就行了。
5、通配替换 如果要想将文档中的书名(包含在书名号“《》”之间的部分)统一设置“黑体、红色”,可以利用通配符替换来实现:打开“查找和替换”对话框,展开 “高级”选项,选中其中的“使用通配符”选项,在“查找内容”中输入“《·》”,然后将光标定在“替换为”右侧的方框中,不输入内容,打开“替换字体”对话框,将“中文字体”和“字体颜色”分别设置为“黑体”和“红色”,点击“确定”返回,再按一下“全部替换”按钮即可。
6、书签替换 在文档录入时,先将文档中要多次出现的字符(如“比上年同期增长128%”)输入到文档中,然后选中这一特定字符,执行“插入一〉书签”命令,打开“书签”对话框,输入一个便于理解的名称(如“zzb1”),然后依次按“添加一取消”按钮返回。
以后需要输入该字符时,执行“插入-〉引用-〉交叉引用”命令,打开“交叉引用”对话框,按“引用类型”右侧的下拉按钮,在随后出现的下拉列表中,选择“书签”选项,然后选中其中需要的书签名称,再单击“插入”按钮即可。
通过这种方法输入的字符,如果对定义的书签内容进行了修改(如“比上年同期增长127.5%”),只要按“Ctrl+A”。
组合键选中全文,再按一下F9功能键,后面引用的内容会一次性作出相应的更改,起到文内批量替换的效果。
7、粘贴替换 在文档录入时,先将文档中要多次出现的字符(如“比上年同期增长128%”等)输入到文档中,然后选中这一特定字符,执行“复制”操作,再将光标定在需要再次输入此字符的位置上,执行“编辑-〉选择性粘贴”命令,打开“选择性粘贴”对话框,选中其中的“粘贴为链接”选项(其它选项不需要更改),点击“确定”返回。
这样,重复进行“选择性粘贴”就可以将上述字符插入到文档多处。
此时,如果修改了最初的字符内容(如“比上年同期增长127.5%”),则后续词条随之更新,也达到了批量替换的目的。
8、大小写替换 如果想将文档中的大(小)写字母,转换成小(大)写格式,可以这样来做:选中需要转换的文档区域,根据转换的实际需要,反复按“shifl+F3”组合键即可。
格式 Microsoft Word X (Mac OS X) Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.doc)成为事实上最通用的标准。
Word文件格式的详细资料并不对外公开。
Word文件格式不只一种,因为随Word软件本身的更新,文件格式也会或多或少的改版,新版的格式不一定能被旧版的程序读取(大致上是因为旧版并未内建支援新版格式的能力)。
微软已经详细公布Word 97的DOC格式,但是较新的版本资料仍未公开,只有公司内部、政府与研究机构能够获知。
业界传闻说某些Word文件格式的特性甚至连微软自己都不清楚。
其他与Word竞争的办公室作业软件,都必须支援事实上最通用的Word专用的档案格式。
因为Word文件格式的详细资料并不对外公开,通常这种兼容性是藉由逆向工程来达成。
许多文字处理器都有汇出、汇入Word档案专用的转换工具,譬如AbiWord或OpenOffice。
(参照文本编辑器当中关于其他竞争软件的说明。
)Apache Jakarta POI是一个开放原始码的Java数据库,其主要目标是存取Word的二进制文件格式。
不久前,微软自己也提供了检视器,能够不用Word程序就检视Word文件。
例:Word ...
java解析word中的文字,出现手动换行符,就是向下的箭头,怎么替换...
word中出现的向下的箭头,其实叫软回车符,也叫手动换行符,而我们平常在word中所见的是硬回车,一个转弯的箭头。
软回车的符号是“^l ”,硬回车的符号是“^p”。
可以通过查找和替换命令来消除。
操作步骤:1、开始---->;查找,如图所示;2、弹出和替换对话框,在查找内容中输入“^l ”,替换内容为空,点击全部替换就会将软回车全部替换掉,如图所示。
转载请注明出处51数据库 » 替换word中的书签java
阿Quen