精华内容
下载资源
问答
  • java读取docx

    2010-06-08 13:37:41
    package document; import interfaces.ICommon...import java.text.SimpleDateFormat;import java.util.Date; import org.apache.poi.POIXMLDocument;import org.apache.poi.POIXMLTextExtractor;import org.apache...

    package document;

    import interfaces.ICommon;

    import java.text.SimpleDateFormat;
    import java.util.Date;
    import org.apache.poi.POIXMLDocument;
    import org.apache.poi.POIXMLTextExtractor;
    import org.apache.poi.openxml4j.opc.OPCPackage;
    import org.apache.poi.xwpf.extractor.XWPFWordExtractor;

    import common.AddTxt;

    /**
     * 读取docx内容并写入txt
     * @author DanielCooger
     * <a href="mailto:tangjunfeng52099@gmail.com">daniel</a>
     */
    public class Docx implements ICommon{
     //创建文件夹路径
     private String path = "d:\\doc";
     private String date = new SimpleDateFormat("yyyyMMddHHmmss")
       .format(new Date());
     //目标文件
     private String docx = "d:\\doc\\DOCX" + date + ".txt"; 

     /**
      * 读取docx文件内容
      */
     public boolean readText(String file) throws Exception {
      OPCPackage opcPackage = POIXMLDocument.openPackage(file);
      POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);
      String text = extractor.getText();
      System.out.println(text);
     }
    }

    展开全文
  • 适用场景:java读取带图片或不带图片的docx文件1.带图片的docx文件格式2.运行代码生成的html格式文件:生成到目录的图片:双击打开csDocx.html:代码:package com.test;import java.io.File;import java.io....

    适用场景:java读取带图片或不带图片的docx文件

    1.带图片的docx文件格式

    6486a4d105ae70723c337f5d82866ff0.png

    2.运行代码

    a032e8518f1100a75e0ad3802871f75f.png

    生成的html格式文件:

    e8e63bda064e2ddbcd18e4f3beb199b2.png

    生成到目录的图片:

    599c78607136feb32baea928d9d4dcb8.png

    双击打开csDocx.html:

    4e2b7ee7470b0928be461210570dd9d2.png

    代码:

    package com.test;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileNotFoundException;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.PrintWriter;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    import java.util.HashMap;

    import java.util.List;

    import java.util.Map;

    import java.util.Random;

    import java.util.regex.Matcher;

    import java.util.regex.Pattern;

    import org.apache.poi.xwpf.usermodel.XWPFDocument;

    import org.apache.poi.xwpf.usermodel.XWPFParagraph;

    import org.apache.poi.xwpf.usermodel.XWPFPictureData;

    import org.apache.poi.xwpf.usermodel.XWPFRun;

    import org.junit.Test;

    import org.junit.runner.RunWith;

    import org.springframework.boot.test.context.SpringBootTest;

    import org.springframework.test.context.junit4.SpringRunner;

    @RunWith(SpringRunner.class)

    @SpringBootTest

    public class TestDocx {

    @Test

    public void testReadImgDocx() {

    System.out.println(analyzeDocx());

    }

    private String analyzeDocx(){

    //对应桌面地址的docx格式文件

    String path="C:\\Users\\Administrator\\Desktop\\cs.docx";

    StringBuffer tempBuffer = new StringBuffer();

    InputStream in = null;

    try{

    Map imgMap = new HashMap();

    in = new FileInputStream(path);

    XWPFDocument docx = new XWPFDocument(in);

    //获取所有图片

    List xwpfPicList = docx.getAllPictures();

    //存放图片路径

    String fileName = "D:\\\upload\\cs\\";

    for(XWPFPictureData p:xwpfPicList){

    //获取图片在word中唯一标识

    String id = p.getParent().getRelationId(p);

    byte[] pb = p.getData();

    String pName = p.getFileName();

    //图片存放路径加图片名称

    String img = fileName+createNumber()+pName;

    imgMap.put(id, img);

    File files = new File(img);

    //如果路径不存在,则创建

    if (!files.getParentFile().exists()) {

    files.getParentFile().mkdirs();

    }

    FileOutputStream fos=null;

    try {

    fos = new FileOutputStream(img);

    fos.write(pb);

    fos.flush();

    }catch(Exception e) {

    }finally {

    if(fos != null) {

    try {

    fos.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }

    //获取所有段落

    List paragraphs = docx.getParagraphs();

    for (XWPFParagraph xwpfParagraph : paragraphs) {

    List runs = xwpfParagraph.getRuns();

    for (XWPFRun xwpfRun : runs) {

    String runXmlText = xwpfRun.getCTR().xmlText();

    //如果此处是

    if(runXmlText.indexOf("

    int rIdIndex = runXmlText.indexOf("r:embed=");

    int ridEndIndex = runXmlText.indexOf("/>",rIdIndex);

    //rIdText格式: 这个是每一个图片的word中唯一标识

    String rIdText = runXmlText.substring(rIdIndex, ridEndIndex - 1);

    Pattern p = Pattern.compile("r:embed=\"(\\w+)\"");

    Matcher m=p.matcher(rIdText);

    while(m.find()){

    tempBuffer.append("%22%20+%20imgMap.get(m.group(1))%20+%20%22");

    }

    }

    //文字

    else if(runXmlText.indexOf("

    tempBuffer.append(xwpfRun.toString());

    }

    }

    //换行

    tempBuffer.append("
    ");

    }

    } catch (FileNotFoundException e) {

    e.printStackTrace();

    }catch (IOException e) {

    e.printStackTrace();

    }finally {

    if(in != null) {

    try {

    in.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    String docxContent = tempBuffer.toString();

    PrintWriter pw = null;

    try {

    //对应桌面地址

    pw = new PrintWriter("C:\\Users\\Administrator\\Desktop\\csDocx.html");

    //解决中文乱码

    pw.write("");

    //输出到html,然后桌面找到cs.html打开看效果

    pw.write(docxContent);

    } catch (FileNotFoundException e) {

    }finally {

    if(pw != null) {

    pw.close();

    }

    }

    return docxContent;

    }

    /**

    * 生成18位编号,yyyyMMddHHmmss+4位随机数(共18位)

    */

    private String createNumber(){

    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");

    Random r = new Random();

    return sdf.format(new Date())+(r.nextInt(9000)+1000);

    }

    }

    展开全文
  • 1 2 org.apache.poi 3 poi 4 3.10-FINAL 5 1 2 org.apache.poi 3 poi-ooxml 4 3.10-FINAL 5 java使用poi读取doc和docx文件(maven自动导入依赖包) 于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通...

    maven构建的项目-->pom.xml文件

    eclipse提供Dependencies直接添加依赖jar包的工具:直接搜索poi以及poi-ooxml即可,maven会自动依赖需要的jar包:

    poi提供microsoft office旧版本支持,eg .xls Excel

    poi-ooxml提供microsoft office新版本支持,eg .xlsx Excel

    或者手动修改pom.xml,在添加jar包依赖的地方加入

    翻过这道山,就有人听到你的故事。

    1

    2 org.apache.poi

    3 poi

    4 3.10-FINAL

    5

    1

    2 org.apache.poi

    3 poi-ooxml

    4 3.10-FINAL

    5

    java使用poi读取doc和docx文件(maven自动导入依赖包)

    于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通的io流的方法来读取,而是也需要用poi,于是进行了一番尝试后,终于以正确的编码格式读取了这个doc文件。

    在网上搜索的过程中发现doc和docx的读取方法是不一样的,于是顺带也学了一下docx文件的简单读取。

    一、导包:

    doc文件的读取,需要导入poi-scratchpad的jar包和相关依赖包:

    98b756c5831e12a77878faaca1f67c3f.png

    docx文件读取,需要导入poi-ooxml的jar包和相关依赖包:

    58abc621191d0575244ea7014f0b0240.png

    我用的是maven构建项目,相关的依赖包会自动导入,maven导包配置如下:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1

    2 org.apache.poi

    3 poi-ooxml

    4 3.8

    5

    6

    7 org.apache.poi

    8 poi-scratchpad

    9 3.8

    10

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    二、读取文件的代码:

    1、doc文件读取简单示例:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1 public static void readAndWriterTest3() throws IOException {

    2 File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.doc");

    3 String str = "";

    4 try {

    5 FileInputStream fis = new FileInputStream(file);

    6 HWPFDocument doc = new HWPFDocument(fis);

    7 String doc1 = doc.getDocumentText();

    8 System.out.println(doc1);

    9 StringBuilder doc2 = doc.getText();

    10 System.out.println(doc2);

    11 Range rang = doc.getRange();

    12 String doc3 = rang.text();

    13 System.out.println(doc3);

    14 fis.close();

    15 } catch (Exception e) {

    16 e.printStackTrace();

    17 }

    18 }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    2、docx文件读取简单示例:

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    1 public static void readAndWriterTest4() throws IOException {

    2 File file = new File("C:\\Users\\tuzongxun123\\Desktop\\aa.docx");

    3 String str = "";

    4 try {

    5 FileInputStream fis = new FileInputStream(file);

    6 XWPFDocument xdoc = new XWPFDocument(fis);

    7 XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);

    8 String doc1 = extractor.getText();

    9 System.out.println(doc1);

    10 fis.close();

    11 } catch (Exception e) {

    12 e.printStackTrace();

    13 }

    14 }

    48304ba5e6f9fe08f3fa1abda7d326ab.png

    //20171218修改

    我并没有在工作中操作过word,这篇博客也只是一时兴起所做,因此写的很简单。

    而最近陆续有朋友找我询问相关的问题,其中有好几个都在询问依赖包有哪些,为了避免一再回答这种问题,特将依赖包截图:

    8bbd5c04cd7bab547a2b0715bceba26a.png

    范仁义 2018-01-01 14:30 阅读:1933 评论:0 推荐:0 编辑

    范仁义 2018-01-01 14:09 阅读:176 评论:0 推荐:0 编辑

    范仁义 2017-12-31 09:35 阅读:915 评论:0 推荐:1 编辑

    范仁义 2017-12-31 09:33 阅读:1341 评论:0 推荐:1 编辑

    范仁义 2017-12-30 08:54 阅读:1388 评论:0 推荐:0 编辑

    范仁义 2017-12-30 02:13 阅读:1534 评论:0 推荐:0 编辑

    范仁义 2017-12-30 01:33 阅读:293 评论:0 推荐:0 编辑

    范仁义 2017-09-27 10:57 阅读:624 评论:0 推荐:1 编辑

    展开全文
  • 使用POI读写word docx文件目录1读docx文件1.1通过XWPFWordExtractor读1.2通过XWPFDocument读2写docx文件2.1直接通过XWPFDocument生成2.2以docx文件作为模板POI在读写word docx文件时是通过xwpf模块来进行的,其核心...

    使用POI读写word docx文件

    目录

    1     读docx文件

    1.1     通过XWPFWordExtractor读

    1.2     通过XWPFDocument读

    2     写docx文件

    2.1     直接通过XWPFDocument生成

    2.2     以docx文件作为模板

    POI在读写word docx文件时是通过xwpf模块来进行的,其核心是XWPFDocument。一个XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档。XWPFDocument中主要包含下面这几种对象:

    l  XWPFParagraph:代表一个段落。

    l  XWPFRun:代表具有相同属性的一段文本。

    l  XWPFTable:代表一个表格。

    l  XWPFTableRow:表格的一行。

    l  XWPFTableCell:表格对应的一个单元格。

    1       读docx文件

    跟读doc文件一样,POI在读docx文件的时候也有两种方式,通过XWPFWordExtractor和通过XWPFDocument。在XWPFWordExtractor读取信息时其内部还是通过XWPFDocument来获取的。

    1.1     通过XWPFWordExtractor读

    在使用XWPFWordExtractor读取docx文档的内容时,我们只能获取到其文本,而不能获取到其文本对应的属性值。下面是一段使用XWPFWordExtractor来读取docx文档内容的示例代码:

    Java代码

    public class XwpfTest {

    /**

    * 通过XWPFWordExtractor访问XWPFDocument的内容

    * @throws Exception

    */

    @Test

    public void testReadByExtractor() throws Exception {

    InputStream is = new FileInputStream("D:\\test.docx");

    XWPFDocument doc = new XWPFDocument(is);

    XWPFWordExtractor extractor = new XWPFWordExtractor(doc);

    String text = extractor.getText();

    System.out.println(text);

    CoreProperties coreProps = extractor.getCoreProperties();

    this.printCoreProperties(coreProps);

    this.close(is);

    }

    /**

    * 输出CoreProperties信息

    * @param coreProps

    */

    private void printCoreProperties(CoreProperties coreProps) {

    System.out.println(coreProps.getCategory());   //分类

    System.out.println(coreProps.getCreator()); //创建者

    System.out.println(coreProps.getCreated()); //创建时间

    System.out.println(coreProps.getTitle());   //标题

    }

    /**

    * 关闭输入流

    * @param is

    */

    private void close(InputStream is) {

    if (is != null) {

    try {

    is.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }

    1.2     通过XWPFDocument读

    在通过XWPFDocument读取docx文档时,我们就可以获取到文本比较精确的属性信息了。比如我们可以获取到某一个XWPFParagraph、XWPFRun或者是某一个XWPFTable,包括它们对应的属性信息。下面是一个使用XWPFDocument读取docx文档的示例:

    Java代码

    public class XwpfTest {

    /**

    * 通过XWPFDocument对内容进行访问。对于XWPF文档而言,用这种方式进行读操作更佳。

    * @throws Exception

    */

    @Test

    public void testReadByDoc() throws Exception {

    InputStream is = new FileInputStream("D:\\table.docx");

    XWPFDocument doc = new XWPFDocument(is);

    List paras = doc.getParagraphs();

    for (XWPFParagraph para : paras) {

    //当前段落的属性

    //       CTPPr pr = para.getCTP().getPPr();

    System.out.println(para.getText());

    }

    //获取文档中所有的表格

    List tables = doc.getTables();

    List rows;

    List cells;

    for (XWPFTable table : tables) {

    //表格属性

    //       CTTblPr pr = table.getCTTbl().getTblPr();

    //获取表格对应的行

    rows = table.getRows();

    for (XWPFTableRow row : rows) {

    //获取行对应的单元格

    cells = row.getTableCells();

    for (XWPFTableCell cell : cells) {

    System.out.println(cell.getText());;

    }

    }

    }

    this.close(is);

    }

    /**

    * 关闭输入流

    * @param is

    */

    private void close(InputStream is) {

    if (is != null) {

    try {

    is.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }

    2       写docx文件

    2.1     直接通过XWPFDocument生成

    在使用XWPFDocument写docx文件时不需要像使用HWPFDocument写doc文件那样必须从一个doc文件开始,我们可以直接new一个空的XWPFDocument,之后再往这个XWPFDocument里面填充内容,然后再把它写入到对应的输出流中。下面是使用XWPFDocument生成docx文件的示例代码:

    Java代码

    public class XwpfTest {

    /**

    * 基本的写操作

    * @throws Exception

    */

    @Test

    public void testSimpleWrite() throws Exception {

    //新建一个文档

    XWPFDocument doc = new XWPFDocument();

    //创建一个段落

    XWPFParagraph para = doc.createParagraph();

    //一个XWPFRun代表具有相同属性的一个区域。

    XWPFRun run = para.createRun();

    run.setBold(true); //加粗

    run.setText("加粗的内容");

    run = para.createRun();

    run.setColor("FF0000");

    run.setText("红色的字。");

    OutputStream os = new FileOutputStream("D:\\simpleWrite.docx");

    //把doc输出到输出流

    doc.write(os);

    this.close(os);

    }

    /***

    * 写一个表格

    * @throws Exception

    */

    @Test

    public void testWriteTable() throws Exception {

    XWPFDocument doc = new XWPFDocument();

    //创建一个5行5列的表格

    XWPFTable table = doc.createTable(5, 5);

    //这里增加的列原本初始化创建的那5行在通过getTableCells()方法获取时获取不到,但通过row新增的就可以。

    //    table.addNewCol(); //给表格增加一列,变成6列

    table.createRow(); //给表格新增一行,变成6行

    List rows = table.getRows();

    //表格属性

    CTTblPr tablePr = table.getCTTbl().addNewTblPr();

    //表格宽度

    CTTblWidth width = tablePr.addNewTblW();

    width.setW(BigInteger.valueOf(8000));

    XWPFTableRow row;

    List cells;

    XWPFTableCell cell;

    int rowSize = rows.size();

    int cellSize;

    for (int i=0; i

    row = rows.get(i);

    //新增单元格

    row.addNewTableCell();

    //设置行的高度

    row.setHeight(500);

    //行属性

    //       CTTrPr rowPr = row.getCtRow().addNewTrPr();

    //这种方式是可以获取到新增的cell的。

    //       List list = row.getCtRow().getTcList();

    cells = row.getTableCells();

    cellSize = cells.size();

    for (int j=0; j

    cell = cells.get(j);

    if ((i+j)%2==0) {

    //设置单元格的颜色

    cell.setColor("ff0000"); //红色

    } else {

    cell.setColor("0000ff"); //蓝色

    }

    //单元格属性

    CTTcPr cellPr = cell.getCTTc().addNewTcPr();

    cellPr.addNewVAlign().setVal(STVerticalJc.CENTER);

    if (j == 3) {

    //设置宽度

    cellPr.addNewTcW().setW(BigInteger.valueOf(3000));

    }

    cell.setText(i + ", " + j);

    }

    }

    //文件不存在时会自动创建

    OutputStream os = new FileOutputStream("D:\\table.docx");

    //写入文件

    doc.write(os);

    this.close(os);

    }

    /**

    * 关闭输出流

    * @param os

    */

    private void close(OutputStream os) {

    if (os != null) {

    try {

    os.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }

    2.2     以docx文件作为模板

    当然,我们也可以像写doc文件那样,先以一个docx文件作为模板,然后建立基于该docx文件的XWPFDocument对象,再把里面一些变化的信息在运行时进行替换,之后将XWPFDocument进行输出就可以了。所不同的是XWPFDocument中没有像HWPFDocument中那样的Range可以用来直接替换内容。而且底层的XWPFParagraph和XWPFRun也不支持直接将文本进行替换。倒是XWPFRun提供了一个设置文本的方法,不过新的文本不会替换旧的文本,而是会追加到原来的文本之后。现在的一个做法是先找出含有需要替换的变量的XWPFRun,然后将其移除,之后在原来的位置新增一个XWPFRun,其对应的文本是替换变量之后的文本。不过你设置的那个的变量的位置不一定就在一个XWPFRun里面,它有可能会被拆分到两个甚至更多的XWPFRun中,所以不是很有必要的话还是不推荐使用这种方式。

    假设我们有一个docx文件,其内容是这样的:

    d0ca0924fc7ec03c129a51dadfb9ce0c.png

    之后我们以该文件作为模板,利用相关数据把里面的变量进行替换,然后把替换后的文档输出到另一个docx文件中。具体做法如下:

    Java代码

    public class XwpfTest {

    /**

    * 用一个docx文档作为模板,然后替换其中的内容,再写入目标文档中。

    * @throws Exception

    */

    @Test

    public void testTemplateWrite() throws Exception {

    Map params = new HashMap();

    params.put("reportDate", "2014-02-28");

    params.put("appleAmt", "100.00");

    params.put("bananaAmt", "200.00");

    params.put("totalAmt", "300.00");

    String filePath = "D:\\word\\template.docx";

    InputStream is = new FileInputStream(filePath);

    XWPFDocument doc = new XWPFDocument(is);

    //替换段落里面的变量

    this.replaceInPara(doc, params);

    //替换表格里面的变量

    this.replaceInTable(doc, params);

    OutputStream os = new FileOutputStream("D:\\word\\write.docx");

    doc.write(os);

    this.close(os);

    this.close(is);

    }

    /**

    * 替换段落里面的变量

    * @param doc 要替换的文档

    * @param params 参数

    */

    private void replaceInPara(XWPFDocument doc, Map params) {

    Iterator iterator = doc.getParagraphsIterator();

    XWPFParagraph para;

    while (iterator.hasNext()) {

    para = iterator.next();

    this.replaceInPara(para, params);

    }

    }

    /**

    * 替换段落里面的变量

    * @param para 要替换的段落

    * @param params 参数

    */

    private void replaceInPara(XWPFParagraph para, Map params) {

    List runs;

    Matcher matcher;

    if (this.matcher(para.getParagraphText()).find()) {

    runs = para.getRuns();

    for (int i=0; i

    XWPFRun run = runs.get(i);

    String runText = run.toString();

    matcher = this.matcher(runText);

    if (matcher.find()) {

    while ((matcher = this.matcher(runText)).find()) {

    runText = matcher.replaceFirst(String.valueOf(params.get(matcher.group(1))));

    }

    //直接调用XWPFRun的setText()方法设置文本时,在底层会重新创建一个XWPFRun,把文本附加在当前文本后面,

    //所以我们不能直接设值,需要先删除当前run,然后再自己手动插入一个新的run。

    para.removeRun(i);

    para.insertNewRun(i).setText(runText);

    }

    }

    }

    }

    /**

    * 替换表格里面的变量

    * @param doc 要替换的文档

    * @param params 参数

    */

    private void replaceInTable(XWPFDocument doc, Map params) {

    Iterator iterator = doc.getTablesIterator();

    XWPFTable table;

    List rows;

    List cells;

    List paras;

    while (iterator.hasNext()) {

    table = iterator.next();

    rows = table.getRows();

    for (XWPFTableRow row : rows) {

    cells = row.getTableCells();

    for (XWPFTableCell cell : cells) {

    paras = cell.getParagraphs();

    for (XWPFParagraph para : paras) {

    this.replaceInPara(para, params);

    }

    }

    }

    }

    }

    /**

    * 正则匹配字符串

    * @param str

    * @return

    */

    private Matcher matcher(String str) {

    Pattern pattern = Pattern.compile("\\$\\{(.+?)\\}", Pattern.CASE_INSENSITIVE);

    Matcher matcher = pattern.matcher(str);

    return matcher;

    }

    /**

    * 关闭输入流

    * @param is

    */

    private void close(InputStream is) {

    if (is != null) {

    try {

    is.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    /**

    * 关闭输出流

    * @param os

    */

    private void close(OutputStream os) {

    if (os != null) {

    try {

    os.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }

    经过上面的代码所示的过程处理后,我们替换变量后新输出来的docx文件的内容是这样的:

    36d35f1725f84c3ab5ea05fca90c3954.png

    因为本人在的项目需要用到这个,感觉这篇文章很好,而且解决了我的问题,本文转自:http://haohaoxuexi.iteye.com/blog/2049110;

    展开全文
  • 读取文件信息所需依赖org.apache.poipoi4.1.2org.apache.poipoi-scratchpad4.1.2org.apache.poipoi-ooxml4.1.2org.apache.pdfboxpdfbox2.0.12org.apache.pdfboxfontbox2.0.12读取doc文件内容public static String ...
  • IDEA+Maven java读取docx和doc文件内容

    千次阅读 2018-09-05 15:23:56
    1、首先需要下载poi相关的jar包: 2、需要将这些jar包安装到maven本地仓库:如安装commons-codec-1.5.jar包 1)打开cmd,执行: mvn install:install-file -Dfile=jar包路径 -DgroupId=A -DartifactId=B -...
  • 已试过 poi 和 apose.words读取,均页数不对称; 试过spire.doc包,发现预读取调用jar要6s 第一次读取文档时长太长。 求求求求求!!!!!!!&#...
  • 我是在Android中渲染文件的...我已经找到了几种以纯Java显示图像的方法,但是有没有一个很好的例子呢?我尝试这个代码来获取图片但不工作…public void extractImages(Document xmlDoc){NodeList binDataList = xml...
  • 之前用POI读取Word内容,但是图片位置没有(能获得文档中的所有图片,但是你并不能知道这些图片是在哪里)。 看了大佬写的文章,才动手试一下: pom.xml: 这个要注意,很多留言咨询问的主要是版本的问题。 &...
  • JAVA POI 读取docx文件生成一个新的docx文件(保留源文件的页眉页脚) 代码如下 import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi....
  • java 读取doc docx txt 文件例子

    热门讨论 2010-09-17 14:29:22
    java 读取doc,docx,txt文件,代码已做了很好的封装,可以在项目中使用!有问题给我发邮箱!
  • 文章目录一、准备的docx文件模板...文件中的文字挨着左边写,要是有缩进/空格之类的字符在,poi读取时不好匹配到想要的数据。 二、引入poi依赖 <dependencies> <dependency> <groupId>org.apac...
  • JAVA 文件数据读取 docx doc txt

    千次阅读 2019-07-09 19:35:23
    读文件目录 ... * 读取文本 * @param path 文件路径 * @return 文本字符串 */ public static JSONArray readAllFile(String path){ JSONArray allFilePath = new JSONArray(); File fil...
  • 这几天在学习java io流的东西,有一个网友看到博客后问了一个问题,就是说他的doc文档为什么用我所说的方法死活就是乱码。我一开始以为是他方法问题,结果自己试了之后发现和他的结果一样也是乱码。于是在网上搜寻了...
  • 使用java方便读取word 中的内容,效率高
  • Java用POI读取docx文档

    千次阅读 2013-07-12 11:35:20
    import org.apache.poi.POIXMLDocument; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; public class Docx { public static void main(String[] args) throws Exception ...Docx fp = new Docx();
  • java读取doc,docx文件源码,请大家参考。lib有在我的资源里边找
  • Java 读取Doc/Docx 文档

    万次阅读 2019-08-01 16:20:00
    Java后台系统中常常会遇到读取文档内容的需求,今天把 Java 读取两种格式的word文档写了一个简单的工具类附上: 1. 需要添加 Apache.poi 的依赖 <!-- apache poi--> <dependency> <groupId>...
  • java读取doc,docx文档所必备的一些jar整理如下,敬请参考。
  • zip文件解压,直接导入到eclipse里 有两个类 分别支持读取word和pdf转word,pdf转word样式百分百保留,license证书已pj,如需商业用途请购买正版证书
  • 场景:因要处理大量行业数据每个(大部分)单个项目文件中包含一份文档说明部分是txt,另外大部分是doc/docx.通过 百度得到需要poi方式 读取。大体是参考此处博主文章:...
  • 一、引用依赖: <repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>.../url> </rep
  • 我想在java中读一个word文件import org.apache.poi.poifs.filesystem.*;import org.apache.poi.hpsf.DocumentSummaryInformation;import org.apache.poi.hwpf.*;import org.apache.poi.hwpf.extractor.*;import org....
  • Java读写docx文档所需jar包,通过POI方式 读取docx文档,相关代码在博客中有,可以读取文档内容并替换文档中需要被替换的内容。
  • Java读取.docx(兼容.doc)文档,并替换其中的关键字为需要的内容,而这些关键字是动态配置的,并不固定,你并不知道配置中的关键字有哪些。 思路: 1.找到文档中的关键字:我们将需要替换的关键字放在配置文件...
  • JAVA 读取 Doc、Docx 及注意点

    万次阅读 2017-12-08 22:14:01
    1. 首先,是通用的读取方法: 读取doc private static String s_of_Doc(File file){ String str = &amp;amp;quot;&amp;amp;quot;; try { FileInputStream fis = new FileInputStream(file); ...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 296
精华内容 118
关键字:

java读取docx

java 订阅