通过poi将csv导成excel .

package com.tw.poi;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;

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;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

import au.com.bytecode.opencsv.CSVWriter;


/**
 * <p>通过poi将csv导成excel,所需的包:
 * 	opencsv-1.8.jar
 * 	poi-2.5.1-final-20040804.jar
 * 	poi-contrib-2.5.1-final-20040804.jar
 * 	poi-scratchpad-2.5.1-final-20040804.jar
 * 下载地址:http://www.apache.org/dyn/closer.cgi/jakarta/poi/
 * 
 * 此类待完善
 * </p>
 * @author tw
 *
 */
public class PoiCsvUtils {
	
	
	/**
	 * <p>通过poi将csv导成excel</p>
	 * @author tw 2009-07-16
	 *
	 */
	public static void CSVexcel(){
		try{
			String xlsPath = "e:/workbook.xls";
			String csvFilePath = "e:/workbook.csv";
			
			CSVWriter writer = null;
			File tempFile = null;
			FileWriter fwriter = null; // 写数据
			try{
				tempFile = new File(csvFilePath);
				fwriter = new FileWriter(tempFile);
				writer = new CSVWriter(fwriter);
			}catch(IOException ioex){
				ioex.printStackTrace();
			}
			/*读取Excel文件时,首先生成一个POIFSFileSystem对象,
			 * 由POIFSFileSystem对象构造一个HSSFWorkbook,
			 * 该HSSFWorkbook对象就代表了Excel文档*/
		   POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream(xlsPath)); 
		   HSSFWorkbook wb = new HSSFWorkbook(fs); 
		   HSSFSheet sheet = wb.getSheetAt(0); 
		   

		   HSSFRow row = null;
		   HSSFCell cell = null;
		   String cellStr = "";
		   
		   //循环读取行与列的值,并将值写入CSV文件
		   for(int i=0;i<=sheet.getLastRowNum();i++){
			   row = sheet.getRow(i);
			   String[] cellArray = new String[row.getLastCellNum()];
			   for(int j=0;j<row.getLastCellNum();j++){
				   cell = row.getCell((short) j);
					// 判断储存格的格式
					if (cell == null){
						cellStr = "";
					}else {
						switch (cell.getCellType()) {
							case HSSFCell.CELL_TYPE_NUMERIC://数字格式
								cellStr = cell.getNumericCellValue() + "";
								// getNumericCellValue()会回传double值,若不希望出现小数点,请自行转型为int
								break;
							case HSSFCell.CELL_TYPE_STRING://字符格式
								cellStr = cell.getStringCellValue();
								break;
								// case HSSFCell.CELL_TYPE_FORMULA:
								// System.out.print(cell.getNumericCellValue());
								// //读出公式储存格计算後的值
								// //若要读出公式内容,可用cell.getCellFormula()
								// break;
							default://不明的格式
								break;
						}
					}
					System.out.println("-----row-"+i+"-----cell-"+j+"---:"+cellStr);
					cellArray[j] = cellStr;
			   }
			   writer.writeNext(cellArray);// 把Excel一行记录写入CSV文件
		   }
		   
			fwriter.flush();
			fwriter.close();
			writer.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值