poi 模板导出word2010 poi根据模板导出word - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

poi 模板导出word2010 poi根据模板导出word

时间:2020-07-06 09:48:02
poi-Java导出word时,能实现在word正文内“插入附件”的效果吗1 读取word 2003及word 2007需要的jar包2 读取 2003 版本( doc)的word文件相对来说比较
作者:

poi 模板导出word2010

poi-Java导出word时,能实现在word正文内“插入附件”的效果吗

1. 读取word 2003及word 2007需要的jar包2. 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-.jar 和 poi-scratchpad-3.5-beta6-.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多:3. 1. openxml4j-bin-beta.jar4. 2. poi-3.5-beta6-.jar5. 3. poi-ooxml-3.5-beta6-.jar6. 4 .dom4j-1.6.1.jar7. 5. geronimo-stax-api_1.0_spec-1.0.jar8. 6. ooxml-schemas-1.0.jar9. 7. xmlbeans-2.3.0.jar10. 其中 4-7 是 poi-ooxml-3.5-beta6-.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-.tar.gz 中的 ooxml-lib 目录下可以找到)。

11. 2.换行符号12. 硬换行:文件中换行,如果是键盘中使用了"enter"的换行。

13. 软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。

14. 对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。

15. 3.读取的注意事项16. 值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。

17. 4.读取word文本内容代码1 import java.io.File;2 import java.io.FileInputStream;3 import java.io.InputStream;4 5 import org.apache.poi.POIXMLDocument;6 import org.apache.poi.POIXMLTextExtractor;7 import org.apache.poi.hwpf.extractor.WordExtractor;8 import org.apache.poi.openxml4j.opc.OPCPackage;9 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;10 11 public class Test {12 public static void main(String[] args) {13 try {14 InputStream is = new FileInputStream(new File("2003.doc"));15 WordExtractor ex = new WordExtractor(is);16 String text2003 = ex.getText();17 System.out.println(text2003);18 19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");20 POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);21 String text2007 = extractor.getText();22 System.out.println(text2007);23 24 } catch (Exception e) {25 e.printStackTrace();26 }27 }28 }

Java poi怎么导入

本篇面向对象为Java的初学者,从下载必备软件到创建一个空白的POI工程,已经熟练掌握环境搭建的请跳过此文。

开发环境为windowsXP-SP2,Eclipse3.2,JDK1.5.07,其实差不多都行,不会有太大的差异。

本文从POI下载开始讲解,前提是开发环境包括系统变量等等已经正确设置完毕。

1.POI的下载截至本文发表,POI最新版本是3.0.1,距离上一个Final版本有3年了吧,以至于我差点儿就把他放弃了——以为没人管了。

官方的公告讲,这一版主要是追加了一些新的特性和BUG修正,不过稍微有点儿遗憾的是,还不能很好的操作Excel2007。

POI官方网址: •http://poi.apache.org/ JAR包下载: •http://apache.mirror.phpchina.com/poi/release/bin/poi-bin-3.0.1-FINAL-20070705.zip 源码下载: •http://apache.mirror.phpchina.com/poi/release/src/poi-src-3.0.1-FINAL-20070705.zip 下载上面的JAR和源码(源码不是必须的,但是为了早日修得正果,深入系统的看看POI代码还是有必要的)并解压待用。

2.用Eclipse搭建项目• 打开Eclipse •依次点击File->New->Java Project •输入项目名称,本例中设置为POI •单击完成 •在项目上点击右键->New->Folder •输入文件夹名称lib •把刚才解压的poi-3.0.1-FINAL-20070705.jar复制过来 •右键点击项目,选择Properties •在左侧列表里选中Java Build Path,右侧选中Libraries •点击Add JARs,选择POI项目的lib下的所有文件 •两次OK确认,回到Eclipse界面 小技巧,快捷操作:可以用鼠标左键选中poi-3.0.1-FINAL-20070705.jar但不松开,拖到任务栏的Eclipse图标上等候1秒左右,Eclipse会自动弹起来,依然不松开移动到lib文件夹上,这个时候鼠标后面跟个十字符号,松开左键,就完成了复制动作。

这个是对整个windows系统都好用的快捷复制方式,视源盘符和目标盘符的不同偶尔会用到Ctrl键。

到此为止,我们做好了POI学习的前提准备,接下来将从最简单的文档创建开始一步一步学习怎样让POI更好的为我们工作。

第一讲 :基本的Excel读写本文主要演示一下POI的基本操作,例如怎样读取和创建一个具体的Excel文件。

按照惯例,拿HelloWorld说事儿。

说明:本文主要内容皆包含于官方帮助手册,之所以要拿出来,出于两个原因,手册是英文的+手册是对应2.5.1的。

核心代码如下,注释部分为讲解。

这里只挑干的讲,完整的代码请参考(下载代码)。

//创建一个空白的WorkBookHSSFWorkbook wb = new HSSFWorkbook();//基于上面的WorkBook创建属于此WorkBook的Sheet,//3.0.1版在使用全角Sheet名的时候不必再setEncdoing了,个人感觉方便了许多。

HSSFSheet st = wb.createSheet("测试页");//创建属于上面Sheet的Row,参数0可以是0~65535之间的任何一个,//注意,尽管参数是Int类型,但是Excel最多支持65536行HSSFRow row = st.createRow(0);//创建属于上面Row的Cell,参数0可以是0~255之间的任何一个,//同样,是因为Excel最大支持的列数为256列HSSFCell cell = row.createCell((short) 0);//设置此单元格的格式为文本,此句可以省略,Excel会自动识别。

//其他还有几种常用的格式,请参考本文底部的补充部分。

cell.setCellType(HSSFCell.CELL_TYPE_STRING);//此处是3.0.1版的改进之处,上一版可以直接setCellValue("Hello, World!"),//但是在3.0.1里,被deprecated了。

cell.setCellValue(new HSSFRichTextString("Hello, World!"));//创建一个文件输出流,指定到C盘根目录下(C盘都有吧?)//xls是Excel97-2003的标准扩展名,2007是xlsx,目前的POI能直接生产的还是xls格式,//如果此处把扩展名改成xlsx,在用Excel2007打开此文件时会报错。

FileOutputStream writeFile = new FileOutputStream("c:/helloworld.xls");//把WorkBook写到流里wb.write(writeFile);//记得手动关闭流,官方文档已经做了特别说明,说POI不负责关闭用户打开的流。

所以...writeFile.close();上面就是创建一个新文档的简易代码,下面的例子是读取刚才创建的Excel并把读取到的内容显示在控制台上。

//指定要读取的文件,本例使用上面生成的helloworld.xlsFileInputStream readFile = new FileInputStream("c:/helloworld.xls");//创建一个WorkBook,从指定的文件流中创建,即上面指定了的文件流HSSFWorkbook wb = new HSSFWorkbook(readFile);//获取名称为“测试页”的sheet//注意,如果不能确定具体的名称,可以用getSheetAt(int)方法取得SheetHSSFSheet st = wb.getSheet("测试页");//获得第一行,同上,如果此行没有被创建过则抛出异常HSSFRow row = st.getRow(0);//获取第一个单元格,如果没有被创建过则抛出异常HSSFCell cell = row.getCell((short) 0);//把cell中的内容按字符串方式读取出来,并显示在控制台上//注意,getRichStringCellValue()方法是3.0.1新追加的,//老版本中的getStringCellValue()方法被deprecated了System.out.println(cell.getRichStringCellValue());//记得关闭流readFile.close();上面对创建和读取分别举例说明,回顾两段代码...

怎么使用JAVA,POI读写word文档

如何使用JAVA、POI读写word文档??能不能将一个word的内容完全读过来,放到一个新生成的word文件中去,要求能将word中的表格、图片等保留,格式不变。

最好能给个例子?网上多是很早以前的那个解决方法如下:,只能读文本内容,且新生成的word文件打开时总是要提示选择编码,不太好用,希望能有新的解决方案??!!poi操作word1.1 添加poi支持:包下载地址1.2 POI对Excel文件的读取操作比较方便,POI还提供对Word的DOC格式文件的读取。

但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩展的Jar包。

下载地址为;下载extractors-0.4_zip这个文件2、提取Doc文件内容 public static String readDoc(String doc) throws Exception {// 创建输入流读取DOC文件 FileInputStream in = new FileInputStream(new File(doc)); WordExtractor extractor = null; String text = null;// 创建WordExtractor extractor = new WordExtractor();// 对DOC文件进行提取 text = extractor.extractText(in); return text; } public static void main(String[] args) { try{ String text = WordReader.readDoc("c:/test.doc"); System.out.println(text); }catch(Exception e){ e.printStackTrace(); } }3、写入Doc文档 import java.io.ByteArrayInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.poifs.filesystem.DirectoryEntry; import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class WordWriter { public static boolean writeDoc(String path, String content) { boolean w = false; try { // byte b[] = content.getBytes("ISO-8859-1"); byte b[] = content.getBytes(); ByteArrayInputStream bais = new ByteArrayInputStream(b); POIFSFileSystem fs = new POIFSFileSystem(); DirectoryEntry directory = fs.getRoot(); DocumentEntry de = directory.createDocument("WordDocument", bais); FileOutputStream ostream = new FileOutputStream(path); fs.writeFilesystem(ostream); bais.close(); ostream.close(); } catch (IOException e) { e.printStackTrace(); } return w; } public static void main(String[] args) throws Exception{ String wr=WordReader.readDoc("D:\\test.doc"); boolean b = writeDoc("D:\\result.doc",wr);

怎样保存WORD的模板?具体怎么样操作?谢谢!

jsp页面导出为word文件需要利用apache的POI来完成。

核心代码如下:其实如果用框架做就方便多了,比如Struts2。

在Action里直接写如下代码: if(out!=null){ String fileName=""; fileName+="评价报告.doc"; try { HttpServletResponse response = ServletActionContext.getResponse(); response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("GB2312"), "8859_1")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } out是jsp页面表单元素,一个button,用于提交表单到相应Action进行Word下载。

Action设置jsp页面头文件。

这样每次点击button就可以把相应jsp页面的内容保存到Word中并且支持下载,Word中内容并且是可编辑状态。

Apache的POI,可以利用POI(java)生成word中柱状图、饼图之类的图表...

word2010模板 扩展名是:.dotxdocx是Microsoft Office2007之后版本使用的,用新的基于XML的压缩文件格式取代了其目前专有的默认文件格式,在传统的文件名扩展名后面添加了字母x,docx文件比doc文件所占用空间更小。

docx格式的文件本质上是一个ZIP文件。

将一个docx文件的后缀改为ZIP后是可以用解压工具打开或是解压的。

事实上,Word2007的基本文件就是ZIP格式的,他可以算作是docx文件的容器。

docx 格式文件的主要内容是保存为XML格式的,但文件并非直接保存于磁盘。

它是保存在一个ZIP文件中,然后取扩展名为docx。

将.docx 格式的文件后缀改为ZIP后解压, 可以看到解压出来的文件夹中有word这样一个文件夹,它包含了Word文档的大部分内容。

而其中的document.xml文件则包含了文档的主要文本内容。

...

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