利用POI对MS Excel进行读写(可以设置写入文件的样式),利用tm-extractor对Word进行读取操作并将信息用(log4j)日志信息显示出

来源:互联网 发布:如何找到网络打印机 编辑:程序博客网 时间:2024/05/16 00:35

1.       准备工作

提供对wordexcel进行操作所需的jar包:poi.jartm-extractors.jarlog4j.jar及其它的配置文件log4j.properties

2.       创建项目、包和类

3.       编写log4j.properties[/u65E5/u5FD7/u4FE1/u606F]unicode,中文即[日志信息]

#Created by JInto - www.guh-software.de

#Sat Oct 31 22:04:38 CST 2009

log4j.appender.A1=org.apache.log4j.ConsoleAppender

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH/:mm/:ss} [/u65E5/u5FD7/u4FE1/u606F] %m%n

log4j.appender.A2=org.apache.log4j.FileAppender

log4j.appender.A2.File=C/://Documents and Settings//gust///u684C/u9762//log4j.txt

log4j.appender.A2.layout=org.apache.log4j.PatternLayout

log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH/:mm/:ss} [/u65E5/u5FD7/u4FE1/u606F] %m%n

log4j.rootLogger=INFO,A1,A2

·以上配置信息提供了两种输出方式:log4j.appender.A1=org.apache.log4j.ConsoleAppender提供的控制台的日志输出方式 log4j.appender.A2=org.apache.log4j.FileAppender 提供的文件(这是文件的位置:C/://Documents and Settings//gust///u684C/u9762//log4j.txt)式日志输出方式

·日志输出格式(log4j.appender.A2.layout.ConversionPattern)统一为:

%d{yyyy-MM-dd HH/:mm/:ss} [/u65E5/u5FD7/u4FE1/u606F] %m%n

4.       编写具体的类

·public class XXXX {

 

    public static String fileToBeRead = "D:/testPOIInput.xls";

   

private static Logger logger = Logger.getLogger(XXXX.class);

   

    public static void main(String args[]){

      

       PropertyConfigurator.configure("bin/log4j1.properties");

      

/*

* HSSFWorkbookExcel文件) 是由sheetExcel薄,可以理解为页面,观察Excel的左下角)组成的

        * sheet又包含许多row(行)

        * row中包含许多cell(单元格====小方格)

        */

       try{

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));

HSSFSheet sheet = workbook.getSheetAt(0);//getSheet("sheet1");

           HSSFRow row;

           HSSFCell cell;

           for(int i=0; i<=sheet.getLastRowNum();i++){

              row = sheet.getRow(i);

              for(int j=0; j<row.getLastCellNum(); j++){

                  cell = row.getCell((short)j);

                  if(cell.getCellType() == 1) //字符串  0 则为数字类型

                  System.out.print(cell.getStringCellValue()+"/t/t");

                  else  

System.out.print(cell.getNumericCellValue()+"/t/t");

              }  

              System.out.println();

           }

       }catch(Exception e){

           e.printStackTrace();

           System.out.println(e);

       }finally{

           logger.info("数据读取完毕!");

       }

    }

}

输出结果为:

姓名    年龄    性别    家庭住址          

张三    43.0            辽宁省沈阳市三区四街道      

2009-10-31 22:50:18 [日志信息] 数据读取完毕!

    你可以对比此输出内容和Excel中的内容是否一致

·public class XXXX {

 

    public static String outputFile="D://testPOIOutput.xls";

private static Logger logger = Logger.getLogger(XXXX.class);

   

    @SuppressWarnings("static-access")

    public static void main(String args[]){

      

       PropertyConfigurator.configure("bin/log4j1.properties");

      

       HSSFWorkbook workbook = new HSSFWorkbook();

       HSSFSheet sheet = workbook.createSheet("sheet1");

       HSSFRow row = sheet.createRow((short)0);

       //利用POI设置输出到Excel的内容的格式

       //设置Excel单元格格式

       //字体为红色、粗体

       HSSFFont font = workbook.createFont();

       font.setColor(HSSFFont.COLOR_RED);

       font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

       //创建格式

       HSSFCellStyle cellStyle = workbook.createCellStyle();

       cellStyle.setFont(font);

       //创建单元格,并应用以上格式  你可以循环创建多个Cell

       HSSFCell cell = row.createCell((short)0);

       cell.setCellStyle(cellStyle);

       cell.setCellType(HSSFCell.CELL_TYPE_STRING);

       cell.setEncoding(cell.ENCODING_UTF_16);

      

       cell.setCellValue("POI测试");

      

       try {

           FileOutputStream fo = new FileOutputStream(outputFile);

           workbook.write(fo);

           fo.close();

           logger.info("成功输出,请查看文件是否存在.");

       } catch (Exception e) {

           e.printStackTrace();

           logger.fatal("错误原因是:"+e);

           logger.error("--------文件输入输出流错误----");

       }

      

    }

}

输出结果:

2009-10-31 22:51:55 [日志信息] 成功输出,请查看文件是否存在.

    你可一查看D:/testPOIOutput.xls中是否有POI测试此信息

·public class XXXX {

   

    private static Logger logger = Logger.getLogger(XXXX.class);

   

    public static void main(String args[]){

       PropertyConfigurator.configure("bin/log4j1.properties");

       FileInputStream fis;

       try {

           fis = new FileInputStream("D:/testWord.doc");

           WordExtractor we = new WordExtractor();

           String str;

           str = we.extractText(fis);

           logger.info(str);

       } catch (Exception e) {

           if(e instanceof FileNotFoundException)

              logger.info("此文件不存在");

           else

              logger.info("输入流读取错误");

           e.printStackTrace();

       }

    }

}

输出结果:

2009-10-31 22:56:35 [日志信息] 正确读取了Word中的文字

    正确读取了Word中的文字正是D:/testWord.docWord中的文字内容

5.    jar包下载地址:利用javaWordExcel进行操作(poi.jartm-extractors.jarlog4j.jar下载或其它网络地址(自己可以上网搜)

以上内容多为网上摘录,自己整理和添加的。

 

原创粉丝点击