Java操作Excel

利用poi创建Excel文件。

 

/**
	 * 创建Excel文件方法,供外部调用
	 * @param fileName 文件名
	 * @param list<HashMap<String,String>>
	 * @return true 创建成功  false 创建失败
	 * @throws FileNotFoundException
	 * @throws IOException
	 */
	public static boolean createExcel(String fileName,List <HashMap<String,String>> list) throws FileNotFoundException, IOException{
		if(fileName.endsWith(".xls")){
			return createExcel2003(fileName, list);
		}else if (fileName.endsWith(".xlsx")){
			return createExcel2007(fileName, list);
		}else {
			return false;
		}
	}
	/**
	 * 
	 * @param fileName
	 * @param list
	 * @return
	 * @throws FileNotFoundException
	 * @throws IOException
	 */
	public static boolean createExcel2003(String fileName,List <HashMap<String,String>> list) throws FileNotFoundException, IOException{
		if(list==null||list.size()==0){
			return false;
		}
		HSSFWorkbook xls = new HSSFWorkbook();
		HSSFSheet sheet= xls.createSheet();
		HashMap<String,String> map=null;
		//遍历list
		for(int i=0;i<list.size();i++){
			HSSFRow rows= sheet.createRow(i);
			map=list.get(i);
			Set<String> set=map.keySet();
			Iterator<String> iterator=set.iterator();
			int j=0;
			while(iterator.hasNext()){
				String key=iterator.next();
				HSSFCell cell=rows.createCell(j);
				cell.setCellValue(map.get(key));//赋值
				j++;
			}
		}
		FileOutputStream out=new FileOutputStream(new File(fileName));
		xls.write(out);
		xls.close();
		out.flush();
		out.close();
		return true;
	}
	/**
	 * 
	 * @param fileName
	 * @param list
	 * @return
	 * @throws FileNotFoundException
	 * @throws IOException
	 */
	public static boolean createExcel2007(String fileName,List <HashMap<String,String>> list) throws FileNotFoundException, IOException{
		if(list==null||list.size()==0){
			return false;
		}
		//创建对象
		XSSFWorkbook xlsx = new XSSFWorkbook();
		//创建sheet
		XSSFSheet sheet= xlsx.createSheet("工作簿");
		//创建map对象,接收传进的参数
		HashMap<String,String> map=null;
		//遍历list
		for(int i=0;i<list.size();i++){
			//创建row对象,代表每一行
			XSSFRow rows= sheet.createRow(i);
			map=list.get(i);
			//遍历map对象,把每一个map中value对方到单元格中
			Set<String> set=map.keySet();
			Iterator<String> iterator=set.iterator();
			int j=0;
			while(iterator.hasNext()){
				String key=iterator.next();
				XSSFCell cell=rows.createCell(j);
				cell.setCellValue(map.get(key));//赋值
				j++;
			}
		}
		//创建流
		FileOutputStream out=new FileOutputStream(new File(fileName));
		//写到本地文件中
		xlsx.write(out);
		xlsx.close();
		out.flush();
		out.close();
		return true;
	}


编写测试类,验证是否正确

package com.demo;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.util.ExcelUtil;
/**
 * 测试类
 * @author NO-1
 *
 */
public class Test {
	public static void main(String[] args) {
//		String filename="C:/Users/NO-1/Documents/部门.xlsx";
		String filename="C:/Users/NO-1/Documents/xmndcS15090700001-2015-11-27.xls";
		String filename2="C:/Users/NO-1/Documents/2015-12-03.xls";
		try {
//			List<HashMap<String,String>> list=ExcelUtil.readExcel(filename);
//			for(HashMap<String,String> map:list){
//				System.out.println(map);
//			}
			List<HashMap<String,String>> list=new ArrayList<HashMap<String,String>>();
			HashMap<String,String> map=null;
			for(int i=0;i<10;i++){
				map=new HashMap<String,String>();
				for(int j=0;j<10;j++){
					map.put("测试"+j, "测试"+j);
				}
				list.add(map);
			}
			boolean isok=ExcelUtil.createExcel(filename2,list);
			if(isok){
				System.out.println("创建成功");
			}else{
				System.out.println("创建失败");
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值