`
影非弦
  • 浏览: 51210 次
  • 性别: 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所需jar包,需要的自取

    poi读取excel所需jar包,可用来使用poi读写word excel。

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

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

    PoiWord和Excel 文件操作的插件

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

    最新POI Lib Java Excel转换成Txt

    Apache POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。目前POI已经有了Ruby版本。 结构: •HSSF - 提供读写Microsoft Excel XLS格式档案的功能。 •XSSF - 提供读写Microsoft Excel OOXML XLSX...

    java excel操作 poi-3.17 可用于jdk1.70

    附件是java poi 3.17的lib库及其依赖库,全部下载引用后,可以进行excel的读写操作,无需引用其他lib库。poi-3.17适用于jdk1.7。 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft ...

    poi读写office文件样例程序

    poi读写office文件的源代码程序,包括需要的jar,读取excel、word、ppt文件的样例程序

    poi教程之word文档

     HWPF - 提供读写Microsoft Word格式档案的功能。  HSLF - 提供读写Microsoft PowerPoint格式档案的功能。  HDGF - 提供读写Microsoft Visio格式档案的功能。  创建Excel 文档  示例1将演示如何利用Jakarta ...

    JAVA读取WORD_EXCEL_POWERPOINT_PDF文件的方法(poi)

    JAVA 读取 WORD_EXCEL_POWERPOINT_PDF 文件的方法(poi) JAVA 读取 WORD_EXCEL_POWERPOINT_PDF 文件的方法是使用 Apache POI 库来实现的。POI 库是一个开放源代码的 Java 库,提供了对 Microsoft Office 文件格式...

    poi4.1.0和poi4.1.1,JAVA读写office文档的开源工具

    HWPF提供读写Microsoft Word DOC格式档案的功能。 HSLF提供读写Microsoft PowerPoint格式档案的功能。 HDGF提供读Microsoft Visio格式档案的功能。 HPBF提供读Microsoft Publisher格式档案的功能。 HSMF提供读...

    java调用POI实现word转HTML.pdf

    Apache POI是Apache软件基金会的一个开源项目,提供了对Microsoft Office文档格式的读写能力,包括Word、Excel、PowerPoint等。 在本文中,我们将使用Java语言调用POI库实现Word文档转换为HTML文档的功能。 POI库...

    POI Apache官方开发包

    Apache POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。目前POI已经有了Ruby版本。 结构: •HSSF - 提供读写Microsoft Excel XLS格式档案的功能。 •XSSF - 提供读写Microsoft Excel OOXML XLSX...

    poi 3.8 beta3-20110606最新版本

    Apache POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。目前POI已经有了Ruby版本。 结构: HSSF - 提供读写Microsoft Excel XLS格式档案的功能。 XSSF - 提供读写Microsoft Excel OOXML XLSX格式...

    Apache POI :Java对Office操作.rar

    包括Apache POI源代码和Apache_POI_API.chm使用教程 ...HWPF - 提供读写Microsoft Word格式档案的功能。 HSLF - 提供读写Microsoft PowerPoint格式档案的功能。 HDGF - 提供读写Microsoft Visio格式档案的功能。

    java对word、excel、pdf等操作.doc

    "Java操作Word、Excel、PDF等文档" Java是一种流行的编程语言,可以用于操作多种类型的文档,包括Word、Excel、PDF等。本文将对Java操作Word、Excel、PDF等文档的知识点进行总结和分析。 一、Java操作Word文档 ...

    NPOI.Examples Excel、WORD读写

    NPOI.Examples Excel、WORD读写NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行...

    Java程序读写操作Excel示例

    这是一个用Java程序读写操作Excel文件的例子。 例子用到了Apache POI项目(http://poi.apache.org)中的一些方法。Apache POI项目中还提供了Java操作Word、PPT、Visio等类型文件的方法。 这个例子是我的一个叫姚楠学生...

    poi3.8 最新poi带源码

    Apache POI是Apache软件基金会的开放源码函式库,POI...HWPF - 提供读写Microsoft Word格式档案的功能。 HSLF - 提供读写Microsoft PowerPoint格式档案的功能。 HDGF - 提供读写Microsoft Visio格式档案的功能。

    java使用poi解密excel文件的实例代码

    简而言之,您可以使用 Java 读写 MS Excel 文件,可以使用 Java 读写 MS Word 和 MS PowerPoint 文件。本代码实例是使用java语言写的poi解密excel文件实例代码,代码只实现了.xls类型的excel,.xlsx类型的excel只需...

    poi jar包,可以用来生成Excel,word的读写

    poi jar 2007年版的,可能有些旧了

Global site tag (gtag.js) - Google Analytics