读取Excel数据和写入txt文件以及读取配置文件工具类

一、读取配置文件工具类ConfigHandler

package com.schmidt;


import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;



/**
 * @date 2015-07-16
 * @author jyz
 * @version 1.0
 * 
 */

public class ConfigHandler
{
	 
	private Properties properties;
	 
	private InputStream in ;
	 
	private InputStreamReader inr;
	
	public ConfigHandler()
	{
		properties = new Properties();
		in = getClass().getResourceAsStream("/config/config.properties");
		 
		 try {
			 inr = new InputStreamReader(in, "UTF-8");
			 properties.load(inr);
			 if (inr != null)
				 inr.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	 
	public String getProperty(String PropertyName)
	{
		return properties.getProperty(PropertyName);
	}
	    
	public int getPropertyInt(String PropertyName)
	{
		try { return  Integer.parseInt(properties.getProperty(PropertyName)); }
		catch (Exception e) {return -1;}
	}
}

二、配置文件放在src下的config文件夹下config.properties,内容如下:

ExcelPath=D:/test1.xls
sheetName=Sheet1
sheetNumber=1
Excel2File=D:/testResult.txt
fromRow=0
Comment=Comment 
Default=Default

三、读取Excel工具类ExcelHandler,需要额外添加jxl.jar包,其中有main函数,运行即可。

package com.schmidt;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;




import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ExcelHandler {
	private static String sheetName="";//excel的sheet name
	private static String ExcelPath="";//原始excel文件的路径
	private static String Excel2File="";//目标excel的路径
	private static int fromRow=1;//开始读取excel的行数
	private static int totalRow=0;
	private static int totalColumn=0;
	private static int sheetNumber=1;
	
	public static void main(String[] args) throws Exception {
		System.out.println("Excel Handle...");
		ConfigHandler config=new ConfigHandler();
		ExcelPath=config.getProperty("ExcelPath");
		Excel2File=config.getProperty("Excel2File");
		sheetName=config.getProperty("sheetName");
		fromRow=config.getPropertyInt("fromRow");
		sheetNumber=config.getPropertyInt("sheetNumber");
		System.out.println("Excel path:"+ExcelPath);
		System.out.println("Excel sheetName:"+sheetName);
		System.out.println("Excel Excel2File:"+Excel2File);
		readExcel(ExcelPath);
	}
	private static boolean readExcel(String path){
		System.out.println("readExcel....");
		try {
			//InputStream is=new FileInputStream();
			Workbook book=Workbook.getWorkbook(new File(path));
			if(book!=null){
				System.out.println("number:"+book.getNumberOfSheets());
				Sheet sh=book.getSheet(sheetName);
				if(sh==null)sh=book.getSheet(sheetNumber);
				totalRow=sh.getRows();
				totalColumn=sh.getColumns();
				StringBuffer sb=new StringBuffer();
				if(totalRow>=fromRow){//总行数大于开始读取excel的行数
					for(int i=fromRow;i<totalRow;i++){
						Cell[]cells=sh.getRow(i);//get the row i data
						sb.append(cells[0].getContents());//读取每行第一列的值
					}
				}
				if(sb!=null&&!sb.toString().equals("")){
					writeToFile(Excel2File,sb.toString());
				}
			}
			book.close();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			System.out.println(e.getMessage());
			return false;
		}finally{
			
		}
		
		return true;
	}
	/**
	 * write the specific doc into specific path
	 * 
	 * @param path
	 * @param doc
	 */
	public static void writeToFile(String path, String message) {
		System.out.println("path:======"+path);
		//XMLWriter writer;
		//OutputFormat format = OutputFormat.createPrettyPrint();
		try {
			Writer wr=new OutputStreamWriter(new java.io.FileOutputStream(path),"UTF-8"); 
			wr.write(message);
			wr.close();
			//writer = new XMLWriter(new FileWriter(path), format);
			//writer.write(doc);
			//writer.close();
		} catch (IOException e) {

			e.printStackTrace();
		}
	}
}
四、工程文件目录图如下:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值