如何操作 Office Open XML 格式文档
在Word中创建一个Office Open XML 格式文档
1.启动 Word 2007。 2.在新建文档中,粘贴以下文本: Soaring with the American Bald EagleLorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla rutrum. Phasellus feugiat bibendum urna. Aliquam lacinia diam ac felis. In vulputate semper orci. Quisque blandit. Mauris et nibh. Aenean nulla. Mauris placerat tempor libero.
Pellentesque bibendum. In consequat, sem molestie iaculis venenatis, orci nunc imperdiet justo, id ultricies ligula elit sit amet ante. Sed quis sem. Ut accumsan nulla vel nisi. Ut nulla enim, ullamcorper vel, semper vitae, vulputate vel, mi. Duis id magna a magna commodo interdum.
3.高亮显示Soaring with the American Bald Eagle,然后在 开始标签,在样式组中,设置样式为标题。
4.下一步,在文档中插入一张图片:
将鼠标指针放置在第一段落的末尾,并且点击回车插入新行。
然后,点击插入标签,点击图片,找到一个图片文件 (例如包含在下载中的Eagle1.gif文件),然后点击插入。
在文档属性面板中,添加作者名称,标题,主题和备注,文档属性设置.
如何操作 Office Open XML 格式文档
创建一个Office Open XML格式文件 此部分中,您将检测一个包含文本,图像和属性的示例Word 2007文档的XML文件格式。
在Word中创建一个Office Open XML 格式文档1.启动 Word 2007。2.在新建文档中,粘贴以下文本:Soaring with the American Bald Eagle Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla rutrum. Phasellus feugiat bibendum urna. Aliquam lacinia diam ac felis. In vulputate semper orci. Quisque blandit. Mauris et nibh. Aenean nulla. Mauris placerat tempor libero.Pellentesque bibendum. In consequat, sem molestie iaculis venenatis, orci nunc imperdiet justo, id ultricies ligula elit sit amet ante. Sed quis sem. Ut accumsan nulla vel nisi. Ut nulla enim, ullamcorper vel, semper vitae, vulputate vel, mi. Duis id magna a magna commodo interdum.3.高亮显示Soaring with the American Bald Eagle,然后在 开始标签,在样式组中,设置样式为标题。
4.下一步,在文档中插入一张图片:1.将鼠标指针放置在第一段落的末尾,并且点击回车插入新行。2.然后,点击插入标签,点击图片,找到一个图片文件 (例如包含在下载中的Eagle1.gif文件),然后点击插入。
5.现在添加一个文档属性:1.点击Microsoft Office按钮,指向准备,然后点击属性 。2.在文档属性面板中,添加作者名称,标题,主题和备注,类似于以下:表1.文档属性设置 属性 描述 作者 Nancy Davolio 标题 Soaring with the American Bald Eagle 主题 Bald Eagles 备注 A study of the bald eagle6.下一步,在文档中添加一些批注1.在审阅标签下,点击新建批注。
2.在批注框中,输入This is my comment。此时您的文档类似于图1。
图1. 示例Office Word 2007 文档7.下一步,保存文档:1.点击Microsoft Office 按钮,然后点击另存为。2.在另存为文件类型列表中,选择 Word Document (*.docx),然后在文件名称框中输入SampleWordDocument.docx。
3.点击保存。8.关闭Word。
返回页首 浏览Office Open XML格式文件 在此部分中,您将浏览您刚刚创建的示例文档。浏览Office Open XML 格式文档1.打开Windows资源管理器。
2.找到 SampleWordDocument.docx文件,右键点击此文件,然后选择重命名。重要:使用下面的三个步骤来抽取Office Open XML格式文件。
根据您使用的操作系统不同(Windows XP或Windows Vista),第5步有所不同。3.在文件名称后面添加一个.zip扩展名,文件名称现在变为 SampleWordDocument.docx.zip。
4.当弹出警告信息时,点击确定。5.抽取容器文件:1.(如果您使用Windows XP:) 右键点击SampleWordDocument.docx.zip文件,指向打开方式,然后点击Compressed (zipped) Folders。
此时组成文档的文件夹和部件将会显示在资源管理器中。2.(如 果您使用Windows Vista:) 右键点击SampleWordDocument.docx.zip 文件,然后点击Extract All。
在Extract Compressed (Zipped) Folders 对话框中,接受默认位置或者选择一个新的位置,然后点击Extract。此时组成文档的文件夹和部件将会显示在资源管理器中。
在下面的步骤中,您将检测包含在文档中的关键部件。6.检测 [Content_Types].xml部件:1.使用Windows资源管理器,找到名为[Content_Types].xml的文件。
2.右 键点击此文件,指向打开方式,然后点击Internet Explorer。每一个Office Open XML格式文档的根下都有一个 [Content_Types].xml 组件。
[Content_Types].xml组件的作用就是确定文档中每个唯一类型组件。每个组件需要在这个组件中列出它自己的类型。
组件需要有可以识别的类 型,以便应用程序知道当渲染此文档时如何使用这个组件。类型也能够使您了解到组件的作用以及如何使用。
3.关闭文件。7.检测.rels 文件夹:关 联代表着两个组件之间的连接。
关联是存储在_rels子文件夹中的组件。任何组件都有相关联的组件,包含在同结构的_rels文件夹中,此文件夹包含了一 个定义它们关系的.rels组件。
子文件夹创建在与组件相同的文件夹下。一个关联的名称通过在原始组件的文件名后加上.rels扩展名获得 (用于文档文件的关联组件是一个例外;它的名称为“.rels”)。
1.在Windows资源管理器中,双击_rels 文件夹,然后右键点击.rels 文件。2.指向打开方式,点击选择程序,点击Internet Explorer,然后点击确定。
3.完成检测后,关闭IE。8.检测docProps 文件夹:2007版本中的文档属性在三个Microsoft Office System程序中是始终保持结构化的。
分成三个逻辑XML组件,它们被存储自docProps子文件夹下。这使得用户可以很容易的进行访问,因为他们它们在相同的位置并且不会和其它的文档内容混淆。
在Windows资源管理器中,双击docProps 文件夹,右键点击core.xml 文件,指向打开方式,然后点击Internet Explorer。9.检测core.xml 组件:打开 core.xml 组件,然后观察显示的您之前输入的属性。
core.xml组件持有用户输入的用来标识文档的属性,例如标题,主题和作者。10.检测custom.xml 组件:从Windows资源管理器中,在Internet Explorer中打开custom.xml。
custom.xml 组件包含了被用户,开发人员或者通过自定义逻辑。
Java怎么操作OpenOffice创建word文档并向其设置内容
OpenOffice java api:简单的说就是利用java程序可以操作OpenOffice的所有功能,比如创建doc文档,插入文字,设置文字格式等等。
1. OpenOffice 给程序员提供了一个叫UNO (UniversalNetwork Objects)的组件技术.我理解的UNO: OpenOffice 类似于web程序中的服务器,程序员写的代码类似于客户端,利用UNO提供的接口和服务去完成对OpenOffice文档的操作。所以写程序首先要搭建 UNO环境:1. 下载 OpenOffice2.复制UNO提供的jar包: unoil.jar, java_uno.jar, juh.jar, jurt.jar, ridl.jar, unoloader.jar. (ps: 安装了SDK之后在文件夹找)到自己的工程中,引入它们。
3. 下载文档:DevelopersGuide.pdf. 4. 安装了SDK后,重新启动一下机器,然后就可以按照 DevelopersGuide 来学习 UNO 编程了。5. 需要ava 环境。
补充: 安装了SDK后, java, c++帮助文档,样例程序,其他关于sdk的信息 都放在本地openOffice安装路径一个叫sdk目录下面,enjoy it !总结一下已经实现的功能和碰到的问题汇总:1. 首先要得到远程office组件的上下文.通过:com.sun.star.uno.XComponentContext xContext = com.sun.star.comp.helper.Bootstrap.bootstrap();得到,如果OpenOffice安装路径不是在工程的路径下面(我自己猜的), 就会报:com.sun.star.comp.helper.BootstrapException: no office executable found!解决办法: 黑其源代码, 看了源代码就会发现其实OpenOffice是在寻找本地的soffice的shell文件,所以弄个变量来保存soffice在系统中的路径,重新写一 个Bootstrap就可以了。详细请参照:论坛 。
2. 得到 XMultiComponentFactory (ComponentFactory 工厂)com.sun.star.lang.XMultiComponentFactory xMCF = xContext.getServiceManager(); 3. 得到各种组件可以通过下面代码:// docType 是 与 soffice 同目录下面的OpenOffice的其他shell文件,swrite等等 protected XComponent newDocComponent(String docType) throws java.lang.Exception { String loadUrl = "private:factory/" + docType; mxRemoteServiceManager = this.getRemoteServiceManager(); Object desktop = mxRemoteServiceManager.createInstanceWithContext( "com.sun.star.frame.Desktop", mxRemoteContext); XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime .queryInterface(XComponentLoader.class, desktop); PropertyValue[] loadProps = new PropertyValue[0]; return xComponentLoader.loadComponentFromURL(loadUrl, "_blank", 0, loadProps); }4.得到 XTextDocument XComponent xEmptyWriterComponent = newDocComponent("swriter"); XTextDocument mxDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, xEmptyWriterComponent);5. 得到一个文档的引用XText mxDocText = mxDoc.getText();6. 得到文档的属性列表 XPropertySet mxDocProps = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, mxDoc);7. 建立光标,用来插入新的内容。XTextCursor mxDocCursor = mxDocText.createTextCursor(); XSentenceCursor xSentenceCursor = (XSentenceCursor) UnoRuntime .queryInterface(XSentenceCursor.class, mxDocCursor); XWordCursor xWordCursor = (XWordCursor) UnoRuntime.queryInterface( XWordCursor.class, mxDocCursor);8.得到光标属性列表 XPropertySet xCursorProps = (XPropertySet) UnoRuntime .queryInterface(XPropertySet.class, mxDocCursor);9.设置插入文字格式 xCursorProps.setPropertyValue("CharFontName", "宋体"); xCursorProps.setPropertyValue("CharWeight", new Float(FontWeight.BOLD)); xCursorProps.setPropertyValue("CharHeight", new Float(10.5)); // 居中显示 xCursorProps.setPropertyValue("ParaAdjust", com.sun.star.style.ParagraphAdjust.CENTER);10.在该光标处插入信息mxDocText.insertString(xSentenceCursor, “Hello World", true);11. 保存的关键代码 protected void storeDocComponent(XComponent xDoc, String storeUrl) throws java.lang.Exception { XStorable xStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, xDoc); PropertyValue[] storeProps = new PropertyValue[1]; storeProps[0] = new PropertyValue(); storeProps[0].Name = "FilterName"; storeProps[0].Value = "MS Word 97"; openOfficeJavaLogger.debug("。
store \"" + xDoc.toString() + "\" to \"" + storeUrl + "\"."); xStorable.storeAsURL(storeUrl, storeProps);。
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里的表格问题,高分在线等
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.hwpf.usermodel.Table;
import org.apache.poi.hwpf.usermodel.TableCell;
import org.apache.poi.hwpf.usermodel.TableIterator;
import org.apache.poi.hwpf.usermodel.TableRow;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class ExportDocImpl
{
public void testWord(){
try{
FileInputStream in = new FileInputStream("D:\\sinye.doc");//载入文档
POIFSFileSystem pfs = new POIFSFileSystem(in);
HWPFDocument hwpf = new HWPFDocument(pfs);
Range range = hwpf.getRange();//得到文档的读取范围
TableIterator it = new TableIterator(range);
//迭代文档中的表格
while (it.hasNext()) {
Table tb = (Table) it.next();
//迭代行,默认从0开始
for (int i = 0; i
Java怎么操作OpenOffice创建word文档并向其设置内容
OpenOffice java api:简单的说就是利用java程序可以操作OpenOffice的所有功能,比如创建doc文档,插入文字,设置文字格式等等。
1. OpenOffice 给程序员提供了一个叫UNO (UniversalNetwork Objects)的组件技术.我理解的UNO: OpenOffice 类似于web程序中的服务器,程序员写的代码类似于客户端,利用UNO提供的接口和服务去完成对OpenOffice文档的操作。所以写程序首先要搭建 UNO环境:1. 下载 OpenOffice2.复制UNO提供的jar包: unoil.jar, java_uno.jar, juh.jar, jurt.jar, ridl.jar, unoloader.jar. (ps: 安装了SDK之后在文件夹找)到自己的工程中,引入它们。
3. 下载文档:DevelopersGuide.pdf. 4. 安装了SDK后,重新启动一下机器,然后就可以按照 DevelopersGuide 来学习 UNO 编程了。5. 需要ava 环境。
补充: 安装了SDK后, java, c++帮助文档,样例程序,其他关于sdk的信息 都放在本地openOffice安装路径一个叫sdk目录下面,enjoy it !总结一下已经实现的功能和碰到的问题汇总:1. 首先要得到远程office组件的上下文.通过:com.sun.star.uno.XComponentContext xContext = com.sun.star.comp.helper.Bootstrap.bootstrap(); 得到,如果OpenOffice安装路径不是在工程的路径下面(我自己猜的), 就会报:com.sun.star.comp.helper.BootstrapException: no office executable found!解决办法: 黑其源代码, 看了源代码就会发现其实OpenOffice是在寻找本地的soffice的shell文件,所以弄个变量来保存soffice在系统中的路径,重新写一 个Bootstrap就可以了。详细请参照:论坛 。
2. 得到 XMultiComponentFactory (ComponentFactory 工厂) com.sun.star.lang.XMultiComponentFactory xMCF = xContext.getServiceManager(); 3. 得到各种组件可以通过下面代码:// docType 是 与 soffice 同目录下面的OpenOffice的其他shell文件,swrite等等 protected XComponent newDocComponent(String docType) throws java.lang.Exception { String loadUrl = "private:factory/" + docType; mxRemoteServiceManager = this.getRemoteServiceManager(); Object desktop = mxRemoteServiceManager.createInstanceWithContext( "com.sun.star.frame.Desktop", mxRemoteContext); XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime .queryInterface(XComponentLoader.class, desktop); PropertyValue[] loadProps = new PropertyValue[0]; return xComponentLoader.loadComponentFromURL(loadUrl, "_blank", 0, loadProps); }4.得到 XTextDocument XComponent xEmptyWriterComponent = newDocComponent("swriter"); XTextDocument mxDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, xEmptyWriterComponent);5. 得到一个文档的引用 XText mxDocText = mxDoc.getText();6. 得到文档的属性列表 XPropertySet mxDocProps = (XPropertySet) UnoRuntime.queryInterface( XPropertySet.class, mxDoc);7. 建立光标,用来插入新的内容。XTextCursor mxDocCursor = mxDocText.createTextCursor(); XSentenceCursor xSentenceCursor = (XSentenceCursor) UnoRuntime .queryInterface(XSentenceCursor.class, mxDocCursor); XWordCursor xWordCursor = (XWordCursor) UnoRuntime.queryInterface( XWordCursor.class, mxDocCursor);8.得到光标属性列表 XPropertySet xCursorProps = (XPropertySet) UnoRuntime .queryInterface(XPropertySet.class, mxDocCursor);9.设置插入文字格式 xCursorProps.setPropertyValue("CharFontName", "宋体"); xCursorProps.setPropertyValue("CharWeight", new Float(FontWeight.BOLD)); xCursorProps.setPropertyValue("CharHeight", new Float(10.5)); // 居中显示 xCursorProps.setPropertyValue("ParaAdjust", com.sun.star.style.ParagraphAdjust.CENTER);10.在该光标处插入信息 mxDocText.insertString(xSentenceCursor, “Hello World", true);11. 保存的关键代码 protected void storeDocComponent(XComponent xDoc, String storeUrl) throws java.lang.Exception { XStorable xStorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, xDoc); PropertyValue[] storeProps = new PropertyValue[1]; storeProps[0] = new PropertyValue(); storeProps[0].Name = "FilterName"; storeProps[0].Value = "MS Word 97"; openOfficeJavaLogger.debug("。
store \"" + xDoc.toString() + "\" to \"" + storeUrl + "\"."); xStorable.storeAsURL(storeUrl, storeProps); }。
转载请注明出处51数据库 » javaopenxml操作word