利用POI对MS Excel进行读写(可以设置写入文件的样式),利用tm-extractor对Word进行读取操作并将信息用(log4j)日志信息显示出
2009-11-02 17:56
1136 查看
1. 准备工作
提供对word和excel进行操作所需的jar包:poi.jar和tm-extractors.jar及log4j.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");
/*
* HSSFWorkbook(Excel文件) 是由sheet(Excel薄,可以理解为页面,观察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包下载地址:利用java对Word和Excel进行操作(poi.jar、tm-extractors.jar及log4j.jar下载)或其它网络地址(自己可以上网搜)
以上内容多为网上摘录,自己整理和添加的。
提供对word和excel进行操作所需的jar包:poi.jar和tm-extractors.jar及log4j.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");
/*
* HSSFWorkbook(Excel文件) 是由sheet(Excel薄,可以理解为页面,观察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包下载地址:利用java对Word和Excel进行操作(poi.jar、tm-extractors.jar及log4j.jar下载)或其它网络地址(自己可以上网搜)
以上内容多为网上摘录,自己整理和添加的。
相关文章推荐
- (非常好的Word操作封装类)VC中进行office编程的-操作word,可以设置文字的样式,新建表格
- 文件部分-----(6 )二进制文件读写操作----将学生信息写入到文件中,再从文件中读取信息
- Silverlight OOB模式的设置和对文件进行读取和写入的操作
- Silverlight OOB模式的设置和对文件进行读取和写入的操作
- 文件部分-----(3)ASCII码文件读写操作----将学生信息写入到文件中,再从文件中读取信息
- 利用JXL实现对于excel-2000/2003版本的文件进行读写操作
- 获得和设置流指针--进行读取写入操作
- 本实例创建Swing窗体,单击窗体中的“写入文件”按钮实现写入功能,单击“读取文件”按钮实现从文件中读取信息显示在文本框中
- 读写锁的操作1(设计六个线程,三个线程写入数据,三个线程读取数据,请用读写锁进行操作)
- java使用CsvReader和CsvWriter对csv文件内容进行读取和写入操作
- 用到poi对word的读写,现在我想从1.doc中读取内容,然后修给其中的内容,再把内容写到2.doc中,要保留内容的样式,比如字体大小,内容排版,表格
- Android-利用Document来对xml进行读取和写入操作-刘宇
- 利用fprintf进行文件操作--向文件中追加写入
- C#创建创建文本文件写入读取,可以用来做系统日志或程序操作日志或者错误记录
- 文件操作ofstream,open,close,ifstream,fin,按照行来读取数据, fstream,iosin iosout,fio.seekg(),文件写入和文件读写,文件拷贝和文件
- 调用JAVA API 对 HDFS 进行文件的读取、写入、上传、下载、删除等操作
- ★实验 8-1 1. 创建一个守候进程。并为自己创建独立的日志文件。 2. 每隔 1s 向日志文件中写入如下信息: a) 未使用的内存大小(MemFree) 可以从/proc/meminf
- 利用Oracle目录对文件进行读写操作
- 在QTP中,经常会遇到需要写入外部文件的地方,比如写Log什么的,这时,可以使用下面代码进行写Txt操作。
- MATLAB 对Ply文件进行 读取、显示、连线操作