javaxmlword
㈠ java 导出 word 怎么合并列。我用的是xml输出的办法,
cell1.setRowspan( 3 );
㈡ 如何在java中操作word
想用java操作word文件?jacob是个不错的选择,也就是java-com桥,你可以在http://sourceforge.net/projects/jacob-project/下载,我下载的版本是1.12,注意版本太低的话可能会报错。
如果没有特殊需求,可以直接使用jacob_*.zip中提供的jacob.jar和jacob.dll。把jacob.dll文件放在系统可以找得到的
路径上,一般放c:/windows/system32下就行了,注意你用的jacob.dll文件和你的jacob.jar包要匹配,否则会报错哦!
如果想自己编译也很简单,把jacob_*_src.zip解开,建个工程,在build.xml中稍作配置即可:
<property name="JDK" value="D:\Java\j2sdk1.4.2_13"/>
<property name="MSDEVDIR" value="D:\Microsoft Visual Studio\VC98"/>
<property name="version" value="1.12"/>
看出来了吗,你的机器上需要有JDK和VC环境,VC是用来生成jacob.dll文件的,如果编译时说找不到MSPDB60.DLL,那就在你的
Microsoft Visual Studio目录下搜索一下,拷贝到D:\Microsoft Visual
Studio\VC98\Bin下就行了。
如果需要对jacob里的jar包改名,(虽然通常不会发生这种情况,但如果你需要两个版本的jacob同时使用,改名可能是一种选择),这时你的工作就多一些:
(1)package改名是必须的了,比如我们把src下的com.jacob.activeX改为com.test.jacob.activeX,把
com.jacob.com改为com.test.jacob.com,打包时只有这两个包是有用的,所以只改它们就够了。
(2)然后修改build.xml中src.java.jacob.mainpackage的value为com.test.jacob,修改java.class.main的value为com.test.jacob.com.Jacob。
(3)别忘了javaJarBin中打包的源码路径也要改,<include name="com/**/*.class" />改为<include name="com/test/**/*.class" />。
(4)build.xml中对生成的dll和jar包也要改个名,比如我们把这两个文件改为jacob_test.dll和
jacob_test.jar。修改build.xml中的enerated.filename.dll和generated.filename.jar
的value为你新改的名字。
(5)com.test.jacob.com.LibraryLoader中,System.loadLibrary("jacob");改成
System.loadLibrary("jacob_test");
(6)另外,很重要的,在jni中*.cpp和*.h中com_jacob_com统一改为com_test_jacob_com,com/jacob
/com统一改为com/test/jacob/com。
(7)ant编译,编译好的文件在release目录下。
(8)最后把编译好的jacob_test.dll文件放在windows/system32下就大功告成了。
现在该用到jacob.jar了,如果你自己修改过jar包的名字,用新改的jar包,如jacob_test.jar,这里统一称为jacob.jar。
首先在classpath中引入jacob.jar包,如果是web应用,WEB-INF的lib中也要加入jacob.jar包。
下面给一个例子:
类ReplaceWord.java
import com.jacob.com.*;
import com.jacob.activeX.*;
public class ReplaceWord {
public static void main(String[] args) {
ActiveXComponent app = new ActiveXComponent("Word.Application"); //启动word
String inFile = "C:\\test.doc"; //要替换的word文件
try {
app.setProperty("Visible", new Variant(false)); //设置word不可见
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.invoke(docs,"Open",Dispatch.Method,new
Object[] { inFile, new Variant(false),new Variant(false) }, new
int[1]).toDispatch();
//打开word文件,注意这里第三个参数要设为false,这个参数表示是否以只读方式打开,因为我们要保存原文件,所以以可写方式打开。
Dispatch
selection=app.getProperty("Selection").toDispatch();//获得对Selection组件
Dispatch.call(selection, "HomeKey", new Variant(6));//移到开头
Dispatch find = Dispatch.call(selection, "Find").toDispatch();//获得Find组件
Dispatch.put(find, "Text", "name"); //查找字符串"name"
Dispatch.call(find, "Execute"); //执行查询
Dispatch.put(selection, "Text", "张三"); //替换为"张三"
Dispatch.call(doc, "Save"); //保存
Dispatch.call(doc, "Close", new Variant(false));
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[] {});
app.safeRelease();
}
}
}
也许你会问,我怎么知道要调用哪个方法传哪些参数来进行操作?别忘了,word还有宏呢!自己录制一个宏,编辑这个宏就可以看到代码了!用哪个对象的哪个方法就看你的了。
我总结了一下:
document下的组件都用Dispatch selection=app.getProperty("Selection").toDispatch()这种方法获得;
再往下的组件就需要调用selection的方法来获取,如 Dispatch find = Dispatch.call(selection, "Find").toDispatch();
如果某个方法需要参数,Dispatch doc =
Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[] { inFile, new
Variant(false),new Variant(false) }, new
int[1]).toDispatch()是一个例子,这是调用docs的Open方法,Object[]数组里就是它需要的参数了;
如果要修改某个组件的属性呢,用Dispatch.put(find, "Text", "name")这种形式,"Text"是属性名,"name"是值。
㈢ java word 转xml 类似word另存为xml一样的原理..有人在java程序里做过吗.要java程序代码转的
两种方式:
1、纯Java,用POI来做
2、用JNA调用word接口,根据office api来做
第一种呢对于java开发来说相对简单,但是需要学POI,而且估计有些格式控制不好。第二种要学习JNA,而且需要边做变差word的office api。
㈣ java,用xml生成word文档,打开生成的word时,显示如下图所示,是什么原因呢
1.可能是低版本打开高版本。或者是格式不相同。
2.文档损坏了。
解决办法:
方法一:利用word2002/2003的“打开并修复”功能来修复文挡。
(1)启动word2002/2003,单击“文件-----打开”,在“打开”对话框中选重要修复的word文挡。
(2)单击“打开”按钮右边的下三角按钮,在弹出的下拉菜单中选中“打开并修复”选项,即可对损坏的文挡进行修复,修复完成后,显示文挡内容。
方法二:转换文挡格式来修复文挡。
(1)启动word2000后单击“工具------选项-------常规”。在该选项卡中选中“打开时确认转换”复选框,并单击“确定”按钮。
(2)单击“文件---打开”,在弹出的“打开”对话框中选中要恢复的文件,并在“文件类型”框中选中“从任意文件中恢复文本”。
(3)单击“打开“按钮自动对孙换文挡进行转换修复。
(4)如果显示的文挡内容混乱,单击“文件---另存为”,将文挡保存为“RTF格式”或其他word所识别的格式。
(5)保存后关闭文挡,再次打开以“RTF格式”保存的文挡即可看到完整的文挡。
(6)再将文挡保存为“DOC格式”即可,这样就完成了对孙换文挡的修复操作。
方法三:重设格式法
Word用文档中的最后一个段落标记关联各种格式设置信息,特别是节与样式的格式设置。这样我们就可以将最后一个段落标记之外的所有内容复制到新文档,就有可能将损坏的内容留在原始文档中。步骤如下:
①在Word中打开损坏的文档,选择“工具→选项”然后选择“编辑”选项卡,取消“使用智能段落选择范围”复选框前的勾。取消选中该复选框,选定整个段落时,Word将不会自动选定段落标记,然后单击“确定”按钮。
②选定最后一个段落标记之外的所有内容,方法是:按“Ctrl+End”组合键,然后按“Ctrl+Shift+Home”组合键。
③在常用工具栏中,依次单击“复制”、“新建”和“粘贴”按钮。
㈤ java有什么方法将word文件转换为Word XML格式的文件 就是word另存为时,可以选择另存为Word XML的格式
文本能复制出来的话,复制到word文本,你想每一行想独立单元格的位置打英文下逗号,换行敲回车,(逗号神马的可以换做空格或者其他允许的符号)然后选中这些文本,2010在插入,表格,文字转换为表格,2003的忘了。。。点一下就完事儿了。
㈥ java 如何把一个word 转为xml 文档 不用 jacob
可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.xml”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.xml”实例
pw.write("我是要写入到xml文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
㈦ 你好。java怎么实现将word另存为xml。谢谢
你只要读取了word,然后就是读写文件为xml就可以了
㈧ 怎么把XML变成WORD文档
1、找到需要转换为word文档的xml文档。
㈨ java项目做的一个编辑器,xml文件导出word或者pdf的时候,出现一个bug,xml每个段落开始都有一个格缩进,
您好,我就来笑笑,要是谁做出来了,顺便发一份给我,我给200财富值 : )