java poi 操作word文档,怎么写入带上下标的文字?

作者&投稿:正可 (若有异议请与网页底部的电邮联系)
java中怎么使用poi创建,编辑word文档~

int minCeofSize = 4 * m_msgCL2D.msgHeight[decLevel] * m_msgCL2D.msgWidth[decLevel];
for (int i = 0; i < minCeofSize; i++)
pTmpImage[i] = pSrcCoef[i];

int gap = minCeofSize;
for (int i = decLevel; i >= 1; i--)

如何使用JAVA、POI读写word文档??
能不能将一个word的内容完全读过来,放到一个新生成的word文件中去,要求能将word中的表格、图片等保留,格式不变。最好能给个例子?网上多是很早以前的那个解决方法如下:,只能读文本内容,且新生成的word文件打开时总是要提示选择编码,不太好用,希望能有新的解决方案??!!

poi操作word
1.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:\est.doc");
boolean b = writeDoc("D:\esult.doc",wr);

1.1 添加poi支持:包下载地址http://www.apache.org/dyn/closer.cgi/poi/release/

1.2 POI对Excel文件的读取操作比较方便,POI还提供对Word的DOC格式文件的读取。但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩展的Jar包。下载地址为http://www.ibiblio.org/maven2/org/textmining/tm-extractors/0.4/ 下载extractors-0.4_zip这个文件

package com.ray.poi.util;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
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;
import org.textmining.text.extraction.WordExtractor;

/**
* 读写doc
* @author wangzonghao
*
*/
public class POIWordUtil {
/**
* 读入doc
* @param doc
* @return
* @throws Exception
*/
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;
}
/**
* 写出doc
* @param path
* @param content
* @return
*/
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;
}

}
测试

package com.ray.poi.util;

import junit.framework.TestCase;

public class POIUtilTest extends TestCase {

public void testReadDoc() {
try{
String text = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc");
System.out.println(text);
}catch(Exception e){
e.printStackTrace();
}

}

public void testWriteDoc() {
String wr;
try {
wr = POIWordUtil.readDoc("E:/work_space/poi/com/ray/poi/util/demo.doc");

boolean b = POIWordUtil.writeDoc("c:\\demo.doc",wr);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

  步骤
  第一步,使用输入流打开文件,并获得文档的XWPFDocument对象。然后获得文档的所有段落,进而获得要操作的文本框所在的段落,具体使用时候,可以通过判断或者print操作得知要操作的文本框到底是哪一段。
  FileInputStream fis = newFileInputStream("e:/file.docx");
  XWPFDocument doc = new XWPFDocument(fis);
  List<XWPFParagraph> paragraphList =doc.getParagraphs();
  XWPFParagraph paragraph = paragraphList.get(10);
  文本框在Word中显示
  第二步,获取XWPFParagraph的XmlObject,然后获得XmlObject对象的游标。可以通过打印XmlObject来得知当前XML的内容,也可以使用XmlCursor的getName方法和getTextValue方法来查看当前游标所在位置的Node及Node的值。
  XmlObject object =paragraph.getCTP().getRArray(1);
  XmlCursor cursor = object.newCursor();
  第四步,通过移动游标,找到要修改的文本所在位置,然后使用游标的setTextValue来设置其值。
  //修改第一处文本:
  cursor.toChild(1); cursor.toChild(0);cursor.toChild(3); cursor.toChild(0); cursor.toChild(0); cursor.toChild(3);cursor.toChild(1); cursor.setTextValue("First");
  // 修改第二处文本
  cursor.toParent(); cursor.toParent();cursor.toChild(1);
  cursor.toChild(3); cursor.toChild(1);
  cursor.setTextValue("Second");
  第四步,保存文件、关闭输入输出流。
  FileOutputStream fos = newFileOutputStream("e:/export.docx");
  doc.write(fos);
  fos.flush();
  fos.close();
  fis.close();
  修改后的文本框


昌吉市14770554908: 怎么使用JAVA,POI读写word文档 -
池符复方: 如何使用JAVA、POI读写word文档?? 能不能将一个word的内容完全读过来,放到一个新生成的word文件中去,要求能将word中的表格、图片等保留,格式不变.最好能给个例子?网上多是很早以前的那个解决方法如下:,只能读文本内容,...

昌吉市14770554908: 怎样用Java、POI技术来读取Word文档,并把Word文档的原来格式完整地显示在页面上? -
池符复方: 可以读取元素,将word相应的元素转换为html相应的元素.不过很多word的特效都是html无法展示的,具体的做法可以参考poi的官方文档,官方文档很详细.

昌吉市14770554908: java中怎么使用poi创建,编辑word文档 -
池符复方: 我最近也在学:仅有的一点资料 import java.io.*; import java.util.*; import org.apache.poi.poifs.filesystem.*; import org.apache.poi.util.LittleEndian; public class WordTest { public WordTest() { } public static boolean writeWordFile(String path, String ...

昌吉市14770554908: java poi 操作word文档,怎么写入带上下标的文字? -
池符复方: 1.1 添加poi支持:包下载地址http://www.apache.org/dyn/closer.cgi/poi/release/ 1.2 POI对Excel文件的读取操作比较方便,POI还提供对Word的DOC格式文件的读取.但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩...

昌吉市14770554908: 如何用java获得word的文档结构 -
池符复方: 可以使用POI(the Java API for Microsoft Documents) https://poi.apache.org/

昌吉市14770554908: 如何用java在本地打开在服务器上的word文档??????
池符复方: 可以用poi先将word下载到本地, 在用Runtime.getRuntime().exec(); 调用本地文件 package cn.rain.main; import java.io.File; import java.io.IOException; public class TT { /** * @param args */ public static void main(String[] args) { try { Runtime....

昌吉市14770554908: java poi导出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)就麻烦多,我说的这个麻烦不是我们写代码的...

昌吉市14770554908: java操作word的组件有哪些 -
池符复方: 可以考虑Apache POI ,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.1、import java.io.File; import java.io.FileInputStream; import java.io.InputStream; 2、import org.apache.poi.hwpf.extractor.WordExtractor;/**读取word文本信息*/ public class WordDemo { public static void main(String[] args) {

昌吉市14770554908: 在java开发中怎么把word文档读到页面文本框中 -
池符复方: 1、先用个组件如POI或是tika读出word里边的内容到内存程序中.2、用jsp的变量输出或是el表达式等都可以了.

昌吉市14770554908: poi中,如何向Word文档里添加表格? -
池符复方: //创建一个表格XWPFTable table = doc.createTable(4,2);table.setCellMargins(50, 0, 50,3000);//top, left, bottom, right // table.setInsideHBorder(XWPFBorderType.NONE, 0, 0, "");//去除单元格间的横线table.getRow(0).getCell(0).setText(...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网