`
影非弦
  • 浏览: 51902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

POI读写word,Excel

    博客分类:
  • java
阅读更多

1.poi读取word文档小例子:

import java.io.*;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;

public class ReadDocFile {
public static void main(String[] args) {
File file = null;
WordExtractor extractor = null ;
try {

   file = new File("c:\\New.doc");
   FileInputStream fis=new FileInputStream(file.getAbsolutePath());
   HWPFDocument document=new HWPFDocument(fis);
   extractor = new WordExtractor(document);
   String [] fileData = extractor.getParagraphText();
   for(int i=0;i<fileData.length;i++){
     if(fileData[i] != null)
       System.out.println(fileData[i]);
   }
}
catch(Exception exep){}
  }
}

 

2.读取Excel:

package com.cn.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class Test2 {

/**
* @param args
* @throws FileNotFoundException 
*/
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream(new File("D:/myExcel.xls"));//1、创建文件读取对象并指定要读取的文件路径
HSSFWorkbook workBook = new HSSFWorkbook(fis);//2、将要读取的文件对象放入工作簿对象中
int sheetNum = workBook.getNumberOfSheets();//3、获取当前工作簿的页数
for(int i=0;i<sheetNum;i++){//4、通过循环获取该工作簿的每一个sheet页
HSSFSheet childSheet = workBook.getSheetAt(i);//5、获取指定的sheet页
int rowNum = childSheet.getLastRowNum();//6、获取当前sheet页的行数
for(int j=0;j<rowNum;j++){//5、通过循环获取该sheet页的每一行
HSSFRow row = childSheet.getRow(j);//6、获取指定的行
int cellNum = row.getLastCellNum();//7、获取该行的单元格数目
for(int k=0;k<cellNum;k++){//8、通过for循环获得该行的每一个单元格
System.out.print(row.getCell(k).toString()+"\t");//9、打印输出每个单元格中的数据。
}
System.out.println();
}
}
}

}

 

3.从数据库读取数据写入Excel表格中:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


public class PersonDao {
/*
* query database and packing the data into the Object(从数据库查询数据并封装到PersonModel对象中
*/
public static List<PersonModel> QueryPerson() throws SQLException{
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "select * from persons";
conn = Utils.getConnection();
List<PersonModel> list = new ArrayList<PersonModel>();
try{
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
PersonModel model = new PersonModel();
model.setId(rs.getInt(1));
model.setName(rs.getString(2));
list.add(model);
}
}catch(SQLException e){
e.printStackTrace();
}finally{
Utils.closeDB(rs, ps, conn);
}
return list;
}
/*
* create Excel and write the data
*/
public void CreateExcel() throws SQLException, IOException{
HSSFWorkbook workBook = new HSSFWorkbook();//创建一个workBook工作簿对象
HSSFSheet sheet = workBook.createSheet("First sheet");//创建一个sheet页
sheet.setColumnWidth((short)0, 2500);
sheet.setColumnWidth((short)1, 5000);
HSSFRow row = sheet.createRow((short)0);
HSSFCell cell[] = new HSSFCell[2];
for(int i=0;i<2;i++){
cell[i] = row.createCell(i);
}
cell[0].setCellValue("id");
cell[1].setCellValue("name");
List<PersonModel> list = PersonDao.QueryPerson();
if(list != null && list.size() > 0){
for(int i=0;i<list.size();i++){
PersonModel model = list.get(i);
HSSFRow dataRow = sheet.createRow(i+1);
HSSFCell data[] = new HSSFCell[2];
for(int j=0;j<2;j++){
data[j] = dataRow.createCell(j);
}
data[0].setCellValue(model.getId());
data[1].setCellValue(model.getName());
File file = new File("D:\\person.xls");
FileOutputStream fos = new FileOutputStream(file);
workBook.write(fos);
fos.close();
}
}
}
public List<PersonModel> readExcel(){
List<PersonModel> list = new ArrayList<PersonModel>();
try{
FileInputStream fis = new FileInputStream("D:/myExcel.xls");
HSSFWorkbook workBook = new HSSFWorkbook(fis);
int sheetNum = workBook.getNumberOfSheets();//获取当前页数
for(int i=0;i<sheetNum;i++){
HSSFSheet childSheet = workBook.getSheetAt(i);
int rowNum = childSheet.getLastRowNum();//获取当前行数
for(int j=1;j<rowNum;j++){
HSSFRow row = childSheet.getRow(j);//获取当前行
//PersonModel model = new PersonModel();
//model.setId(Integer.parseInt(row.getCell(0).toString()));
//model.setName(row.getCell(1).toString());
//list.add(model);
Integer id =new Integer((int) row.getCell(0).getNumericCellValue());
//System.out.print("nihao");
//System.out.print(id);
insertDB(id,row.getCell(1).toString());
}
}
fis.close();
}catch(Exception e){
e.printStackTrace();
}
return list;
}
public static void insertDB(int id,String name) throws Exception{
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "insert into persons values(?,?)";
conn = Utils.getConnection();
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ps.setString(2, name);
if(ps.executeUpdate() > 0){
System.out.println("Operaion succeed!");
}else{
System.out.println("Operation failed!");
}
Utils.closeDB(rs, ps, conn);
}

public static void main(String[] args) throws SQLException, IOException {
PersonDao dao = new PersonDao();
//dao.CreateExcel();
dao.readExcel();
//System.exit(0);
}

}

 

4.把word2003转换成html:

package poi;
 
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.List;
 
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
 
import org.apache.commons.io.FileUtils;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.PicturesManager;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
import org.apache.poi.hwpf.usermodel.Picture;
import org.apache.poi.hwpf.usermodel.PictureType;
import org.w3c.dom.Document;
 
public class PoiWordToHtml {
 
        public static void main(String[] args) throws Throwable {
               final String path = "c:/temp/";
               final String file = "1.doc";
 
               InputStream input = new FileInputStream(path + file);
               HWPFDocument wordDocument = new HWPFDocument(input);
               WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
               wordToHtmlConverter.setPicturesManager(new PicturesManager() {
                       public String savePicture(byte[] content, PictureType pictureType, String suggestedName, float widthInches, float heightInches) {
                               return suggestedName;
                       }
               });
               wordToHtmlConverter.processDocument(wordDocument);
               List pics = wordDocument.getPicturesTable().getAllPictures();
               if (pics != null) {
                       for (int i = 0; i < pics.size(); i++) {
                               Picture pic = (Picture) pics.get(i);
                               try {
                                      pic.writeImageContent(new FileOutputStream(path + pic.suggestFullFileName()));
                               } catch (FileNotFoundException e) {
                                      e.printStackTrace();
                               }
                       }
               }
               Document htmlDocument = wordToHtmlConverter.getDocument();
               ByteArrayOutputStream outStream = new ByteArrayOutputStream();
               DOMSource domSource = new DOMSource(htmlDocument);
               StreamResult streamResult = new StreamResult(outStream);
 
               TransformerFactory tf = TransformerFactory.newInstance();
               Transformer serializer = tf.newTransformer();
               serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
               serializer.setOutputProperty(OutputKeys.INDENT, "yes");
               serializer.setOutputProperty(OutputKeys.METHOD, "html");
               serializer.transform(domSource, streamResult);
               outStream.close();
 
               String content = new String(outStream.toByteArray());
 
               FileUtils.write(new File(path, "1.html"), content, "utf-8");
        }
}

 

分享到:
评论

相关推荐

    poi读写excel+poi总结

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。在本文中,我们将深入探讨如何使用POI进行Excel的读写操作,并进行总结。 1. POI基本概念 Apache POI 提供了...

    poi读写word模板/JAVA生成word包

    关于压缩包中的"poi读写word模板包",可能包含了一些示例代码或模板文件,帮助开发者理解如何使用Apache POI进行Word模板的读写。解压后,你可以查看这些文件来学习具体实现,包括如何查找和替换模板中的特定字符串...

    android中poi生成word文档和excel文档

    在Android开发中,Apache POI 是一个非常实用的库,它允许程序员创建、修改和显示Microsoft Office格式的文件,如Word文档(.doc)和Excel工作簿(.xlsx或.xls)。这个工具对于需要在Android应用中处理这些文档的...

    poi3.9读写excel兼容03和07版本

    "poi3.9读写excel兼容03和07版本"这个标题指的是使用Apache POI 3.9版本的API,能够兼容两种不同格式的Excel文件:.xls(Excel 2003及更早版本)和.xlsx(Excel 2007及更高版本)。 在描述中提到的"完美修订版本...

    应用POI组件读写Excel文档

    此外,POI还提供了用于处理Word和PowerPoint文档的功能。 2. **创建Excel文档** 创建一个新的Excel文档,首先需要创建一个Workbook对象,然后是Sheet对象,最后是Row和Cell对象。例如: ```java Workbook ...

    java读写Excel,POI.JAR,Word内容读取

    java读写Excel,POI.JAR,Word内容读取

    java Apache poi 对word doc文件进行读写操作

    Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式,如 Word、Excel 和 PowerPoint。在处理 Word .doc 文件时,POI 提供了一个名为 HWPF(Horizontally Written Property Set Files)的模块。这个...

    poi3.1读写excel,wps et

    Apache POI是一个流行的开源库,专门用于处理Microsoft Office格式的文件,包括Excel(.xls和.xlsx)和Word(.doc和.docx)。在本场景中,我们关注的是使用POI 3.1版本来读取和写入Excel以及WPS的ET文件。POI 3.1是...

    利用poi+word模版书签,向word中插入数据

    在IT行业中,尤其是在文档自动化处理领域,Apache POI是一个非常重要的工具,它允许开发者使用Java来操作Microsoft Office格式的文件,如Word、Excel和PowerPoint。本教程将深入讲解如何利用Apache POI的XWPF模块...

    POI修改word、excel、pdf、ppt文件属性如作者以及将其转成html

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)、PowerPoint(.ppt, .pptx)等。通过使用POI,开发者可以创建、读取、修改这些文件,并且将...

    java POI完整示例,POI将word转HTML,数据库倒出数据到Excel等

    Java POI是一个强大的库,主要用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在本示例中,我们将探讨如何使用POI进行一系列操作,包括将Word文档转换为HTML,以及从数据库导出数据到Excel。 1. ...

    poi3.8 doc,excel转html

    1. **Apache POI基础**:Apache POI提供了HPSF(Hierarchical Property Set Facility)来处理Word文档的元数据,HWPF(Horrible Word Processor Format)用于读写Word97-2003的.DOC文件,而HSSF用于读写Excel的.BIFF...

    POI3.7读写excel相关jar包

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。在Java环境中,Apache POI 提供了API,使得开发者能够方便地读取、写入和修改这些文件。标题提到的是"POI3.7...

    poi完美word转html

    其中,POI-HSSF组件用于读写MS Excel(.xls)文件,而POI-XSSF组件则用于读写Office Open XML(.xlsx)文件。POI-OOXML组件提供了对Office Open XML文件的支持,包括Word(.docx)、Excel(.xlsx)和PowerPoint(....

    PoiWord和Excel 文件操作的插件

    POI是java对Word和Excel 文件操作的插件,这文档主要是教我们怎么使用POI插件对Word和Excel文件进行读写操作

    Apache POI HSSF读写Excel

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,尤其是Excel(.xls)和Word(.doc)文档。HSSF(Horizontally Stored Sheet Format)是Apache POI项目的一部分,专注于处理旧版的Excel文件...

    POI导出Word 页眉 页脚 标题设置

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在本主题中,我们将深入探讨如何使用POI库来导出Word文档,并进行页眉、页脚和标题的设置。这个过程涉及到对Word...

    java poi 读写excel

    Java POI是Apache软件基金会的开源项目,专门用于处理Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。在Java编程中,如果你需要读取、写入或修改Excel文件,Java POI库是一个非常实用的工具。这篇博客...

    基于poi实现word/excel转换为HTML(且兼容.doc.docx.xls.xlsx)

    Apache POI 是一个流行的开源库,专为处理Microsoft Office格式的文件,如Word(.doc/.docx)和Excel(.xls/.xlsx)。本教程将深入探讨如何使用Apache POI库来实现这些文件向HTML的转换,以实现跨平台和浏览器的兼容...

    java 使用POI框架读写excel doc

    以上就是使用Java的Apache POI框架读写Excel和Word文档的基本操作。实际应用中,你可能需要处理更复杂的情况,如样式设置、公式计算、图表操作等,这都需要进一步学习POI提供的高级API。在实践中不断探索和学习,你...

Global site tag (gtag.js) - Google Analytics