java 替换 word java替换word内容 - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

java 替换 word java替换word内容

时间:2021-04-22 10:30:01
Java程序把Word文档直接换成Html文件方法是什么呢? aco是Java和Windows下的Com桥,通过它我们可以在Java程序中调用COM组件。如果你的JDK是1 4,那你需要下载Jaco
作者:

java 替换 word

Java程序把Word文档直接换成Html文件方法是什么呢?

aco是Java和Windows下的Com桥,通过它我们可以在Java程序中调用COM组件。

如果你的JDK是1.4,那你需要下载Jaco 1.9的jni库才能正常运行,早期版本在JDK 1.4下有些问题。

以下是引用片段:package com;*** 〈p〉Title:Wod文档转html类〈p〉* 〈p〉Desciption: 〈p〉* 〈p〉Copyight:() 2002〈p〉* @autho 舵手* @vesion 1.0*impot com.jaco.com.*;impot com.jaco.activeX.*;pulic class WodtoHtml {***文档转换函数*@paam docfile wod文档的绝对路径加文件名(包含扩展名)*@paam htmlfile 转换后的html文件绝对路径和文件名(不含扩展名)*pulic static void change(Sting docfile, Sting htmlfile) {ActiveXComponent app = new ActiveXComponent("Wod.Application"); 启动wodty {app.setPopety("Visile", new Vaiant(false));设置wod不可见Oject docs = app.getPopety("Documents").toDispatch();Oject doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new Oject[]{ docfile, new Vaiant(false),new Vaiant(tue) }, new int[1]).toDispatch(); 打开wod文件Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Oject[] {htmlfile,new Vaiant (8) }, new int[1]); 作为html格式保存到临时文件Vaiant f = new Vaiant(false);Dispatch.call(doc, "Close", f);} catch (Exception e) {e.pintStackTace();} finally {app.invoke("Quit", new Vaiant[]{});}}pulic static void main(Sting[] sts){WodtoHtml.change("c:\\a\\运输管理调度系统总体方案.doc", "c:\\a\\t");}}

java怎么替换word文档的换行符

java?word跟javae有什么关系?在“查找内容”中输入“手动换行符”,也可以通过键盘输入“^l” 在“替换内容”中输入“段落标记”,也可以通过键盘输入“^p”。

全文替换,就可以将本文中所有的“手动换行符”替换成“段落标记”了 简单的说 ctrl加h 调出查找替换 查找^l然后全文替换为^p不懂再补充求采纳为满意回答。

1.java编程将从键盘输入文本中的子字符串“word”替换为字符串“...

public static void main(String[] args) {System.out.println("请输入字符串:");Scanner in=new Scanner(System.in);String s = in.nextLine();System.out.println("替换word为world");s = s.replace("word", "world");System.out.println(s);System.out.println("替换this");s = s.replace("this", "");System.out.println(s);}直接用String的replace函数就可以实现这是最简单的方法。

java读取word文件的问题

请贴出代码,谢谢。

请关闭输入流,释放资源,谢谢。

调用close()方法。

其他貌似没有发现什么问题。

public static String run(String filename){WordExtractor extractor=null;String text=null;try{FileInputStream in = new FileInputStream (filename);extractor = new WordExtractor();text=extractor.extractText(in);}catch(Exception ex){//logreturn null;}return text;}public static void main(String[] args){try{FileOutputStream out=new FileOutputStream("result.txt");out.write(WordProcess.run(args[0]).getBytes());out.flush();out.close();}catch(Exception ex){System.out.println(ex.toString());}}看看这个。

模范这样写,试试看。

这个代码我试过,没问题,如果这样写还是有问题,那就不是代码的问题了。

java 替换中括号 我想把 “],[” 替换成 “,”

java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄;itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法。

经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,不需要借助任何插件,只需基本IO操作外加编码转换即可。

rtf格式文件表面看来和doc没啥区别,都可以用word打开,各种格式都可以设定。

----- 实现的功能:读取rtf模板内容(格式和文本内容),替换变化部分,形成新的rtf文档。

----- 实现思路:模板中固定部分手动输入,变化的部分用$info$表示,只需替换$info$即可。

1、采用字节的形式读取rtf模板内容2、将可变的内容字符串转为rtf编码3、替换原文中的可变部分,形成新的rtf文档主要程序如下:public String bin2hex(String bin) {char[] digital = "0123456789ABCDEF".toCharArray();StringBuffer sb = new StringBuffer("");byte[] bs = bin.getBytes();int bit;for (int i = 0; i bit = (bs[i] & 0x0f0)>> 4;sb.append("\\"");sb.append(digital[bit]);bit = bs[i] & 0x0f;sb.append(digital[bit]);}return sb.toString(); }public String readByteRtf(InputStream ins, String path){ String sourcecontent =""; try{ ins = newFileInputStream(path); byte[] b= new byte[1024];if (ins == null) {System.out.println("源模板文件不存在");}int bytesRead = 0;while (true) {bytesRead = ins.read(b, 0, 1024); // return final read bytescountsif(bytesRead == -1) {// end of InputStreamSystem.out.println("读取模板文件结束");break;}sourcecontent += new String(b, 0, bytesRead); // convert to stringusing bytes} }catch(Exception e){ e.printStackTrace(); }

JAVA语言关于字符串替换如何操作呢?

本来觉得挺简单的问题,却总也解决不了。

字符串明明是替换了,却总也输出不了正确结果,很是郁闷,到底是为什么呢? 先来看我的代码: Newsdetials nt=(Newsdetials)ntIte.next(); System.out.pintln("新闻明细记录 "+nt); Sting content=nt.getContent(); System.out.pintln("新闻的内容是 : "+content); 转换字符串中的双引号为单引号 content.eplaceAll("\"","""); System.out.pintln("替换后的字符传是: "+content); 程序解释: 程序的前部分是通过迭代器来遍历新闻的明细记录。

我的目的是想用双引号来替换掉字符串中的单引号。

以上是我开始使用的方法,我输出的结果是什么呢?也许你会和我当初的想法相同?输出的是替换后的内容。

答案是错的。

输出的内容和其替换前的内容相同。

明明替换了,这是为什么呢?我也是好久都没找到答案。

一个偶然的机会,让我实现了我的目的。

我的实现如下: Newsdetials nt=(Newsdetials)ntIte.next(); System.out.pintln("新闻明细记录 "+nt); Sting content=nt.getContent(); System.out.pintln("新闻的内容是 : "+content); 转换字符串中的双引号为单引号 Sting content0=content.eplaceAll("\"","""); System.out.pintln("替换后的字符传是: "+content0); 程序解释: 这一段代码看上去和前段相同,但却实现了我的目的。

我很是不解,就看了一下源代码,才发现其中的奥妙。

我们分析一下上面的两段程序: 唯一的不同点是:后者将替换后的字符串赋给了另一个字符串变量,也就是说将替换后的字符串取出,而前者没有。

也就是这一点导致了结果的不同。

于是我就查看了其实现的源代码: 我们来看Sting的eplaceAll()方法的实现: pulic Sting eplaceAll(Sting egex, Sting eplacement) { etun Patten.compile(egex).matche(this).eplaceAll(eplacement); } 我们可以看到,其最终是调用了matche(this).eplaceAll(eplacement)方法来实现的,我们看其是怎么实现的: pulic Sting eplaceAll(Sting eplacement) { eset(); oolean esult = find(); if (esult) { StingBuffe s = new StingBuffe(); do { appendReplacement(s, eplacement); esult = find(); } while (esult); appendTail(s); etun s.toSting(); } etun text.toSting(); } 看这一段代码让我们明白了一切: 我们知道在java中,如果传递的是对象,那么是址传递,所以让我们以为,让原字符串替代后就可以了。

同时我们调用了该字符串的替代方法,直接就修改了其串的值。

上面的代码告诉我们,错了。

因为粗体的部分产生了一个新的对象:StingBuffe的一个实例,而返回的是他的串值,而不是原来的content。

到此,你是否也弄明白了呢?

java解析word中的文字,出现手动换行符,就是向下的箭头,怎么替换...

word中出现的向下的箭头,其实叫软回车符,也叫手动换行符,而我们平常在word中所见的是硬回车,一个转弯的箭头。

软回车的符号是“^l ”,硬回车的符号是“^p”。

可以通过查找和替换命令来消除。

操作步骤:1、开始---->查找,如图所示;2、弹出和替换对话框,在查找内容中输入“^l ”,替换内容为空,点击全部替换就会将软回车全部替换掉,如图所示。

java解析word文档有哪些方法

java读取word文档时,虽然网上介绍了很多插件poi、java2Word、jacob、itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用);java2Word、jacob容易报错找不到注册,比较诡异,我曾经在不同的机器上试过,操作方法完全一致,有的机器不报错,有的报错,去他们论坛找高人解决也说不出原因,项目部署用它有点玄;itxt好像写很方便但是我查了好久资料没有见到过关于读的好办法。

经过一番选择还是折中点采用rtf最好,毕竟rtf是开源格式,不需要借助任何插件,只需基本IO操作外加编码转换即可。

rtf格式文件表面看来和doc没啥区别,都可以用word打开,各种格式都可以设定。

----- 实现的功能:读取rtf模板内容(格式和文本内容),替换变化部分,形成新的rtf文档。

----- 实现思路:模板中固定部分手动输入,变化的部分用$info$表示,只需替换$info$即可。

1、采用字节的形式读取rtf模板内容2、将可变的内容字符串转为rtf编码3、替换原文中的可变部分,形成新的rtf文档主要程序如下:public String bin2hex(String bin) {char[] digital = "0123456789ABCDEF".toCharArray();StringBuffer sb = new StringBuffer("");byte[] bs = bin.getBytes();int bit;for (int i = 0; i > 4;sb.append("\\"");sb.append(digital[bit]);bit = bs[i] & 0x0f;sb.append(digital[bit]);}return sb.toString(); }public String readByteRtf(InputStream ins, String path){ String sourcecontent =""; try{ ins = newFileInputStream(path); byte[] b= new byte[1024];if (ins == null) {System.out.println("源模板文件不存在");}int bytesRead = 0;while (true) {bytesRead = ins.read(b, 0, 1024); // return final read bytescountsif(bytesRead == -1) {// end of InputStreamSystem.out.println("读取模板文件结束");break;}sourcecontent += new String(b, 0, bytesRead); // convert to stringusing bytes} }catch(Exception e){ e.printStackTrace(); } return sourcecontent ;}以上为核心代码,剩余部分就是替换,从新组装java中的String.replace(oldstr,newstr);方法可以实现,在这就不贴了。

源代码部分详见附件。

运行源代码前提:c盘创建YQ目录,将附件中"模板.rtf"复制到YQ目录之下,运行OpreatorRTF.java文件即可,就会在YQ目录下生成文件名如:21时15分19秒_cheney_记录.rtf的文件。

package com;import java.io.File;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;public class OperatorRTF {public String strToRtf(String content){char[] digital = "0123456789ABCDEF".toCharArray();StringBuffer sb = new StringBuffer("");byte[] bs = content.getBytes();int bit;for (int i = 0; i > 4;sb.append("\\"");sb.append(digital[bit]);bit = bs[i] & 0x0f;sb.append(digital[bit]);}return sb.toString();}public String replaceRTF(String content,String replacecontent,intflag){String rc = strToRtf(replacecontent);String target = "";if(flag==0){target = content.replace("$timetop$",rc);}if(flag==1){target = content.replace("$info$",rc);}if(flag==2){target = content.replace("$idea$",rc);}if(flag==3){target = content.replace("$advice$",rc);}if(flag==4){target = content.replace("$infosend$",rc);}return target;}public String getSavePath() {String path = "C:\\YQ";File fDirecotry = new File(path);if (!fDirecotry.exists()) {fDirecotry.mkdirs();}return path;}public String ToSBC(String input){char[] c =input.toCharArray();for (int i =0; i < c.length; i++){if (c[i] == 32){c[i] = (char) 12288;continue;}if (c[i] < 127){c[i] = (char) (c[i] + 65248);}}return newString(c);}public void rgModel(String username, String content) {// TODO Auto-generated method stubDate current=new Date();SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-ddHH:mm:ss");String targetname = sdf.format(current).substring(11,13) + "时";targetname += sdf.format(current).substring(14,16) + "分";targetname += sdf.format(current).substring(17,19) + "秒";targetname += "_" + username +"_记录.rtf";String strpath = getSavePath();String sourname = strpath+"\\"+"模板.rtf";String sourcecontent = "";InputStream ins = null;try{ins = new FileInputStream(sourname);byte[] b = new byte[1024];if (ins == null) {System.out.println("源模板文件不存在");}int bytesRead = 0;while (true) {bytesRead = ins.read(b, 0, 1024); // return final read bytescountsif(bytesRead == -1) {// end of InputStreamSystem.out.println("读取模板文件结束");break;}sourcecontent += new Strin...

大家还关注
阅读排行
推荐阅读