package com.cthq.crm.account.common;

import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExcelUtil {

	/**
	 * Excelファイルにエクスポート
	 * 
	 * @param list データ集
	 * @param sheetname エクセルシート名
	 * @return
	 */
	public synchronized HSSFWorkbook getWorkbook(List list,String sheetname){
		HSSFWorkbook hwb = new HSSFWorkbook();// 新しいHSSFWorkbookインスタンス作成
		HSSFSheet hs = hwb.createSheet();// 新しいシート対象を作成する
		hwb.setSheetName(0, sheetname);// 作成したシートの名称

		List excellist=list;
		HSSFFont font = hwb.createFont();
		font.setColor((short) 12);
		HSSFCellStyle style = hwb.createCellStyle();
        style.setFont(font);

		HSSFRow hr = hs.createRow((short) 3);// ヘッダー
		List headerlist=(List)excellist.get(0);
		for (int i = 0; i < headerlist.size(); i++) {
			HSSFCell cell = hr.createCell((short) i);// セル
			//cell.setEncoding(HSSFCell.ENCODING_UTF_16);// 必要であればコマンドアウト
			cell.setCellValue((String)headerlist.get(i));// セル文字列型のセット
			cell.setCellStyle(style);
		}
		
		for(int i = 1; i < excellist.size(); i++){
			List valuelist=(List)excellist.get(i);
			hr = hs.createRow((short) i);// 新しい行
			for (int ii = 0; ii < valuelist.size(); ii++) {
				HSSFCell cell = hr.createCell((short) ii);// セル
				//cell.setEncoding(HSSFCell.ENCODING_UTF_16);// 必要であればコマンドアウト
				cell.setCellValue((String)valuelist.get(ii));// セル文字列型のセット
			}
		}
		
		return hwb;
	}
	
	/**
	 * Excelファイルデータにエクスポートする
	 * 
	 * @param lists データ集
	 * @param namesエクセルシート名
	 * @return
	 */
	public synchronized HSSFWorkbook getWorkbook(List[] lists, String[] names){

		HSSFWorkbook hwb = new HSSFWorkbook();// 新しいHSSFWorkbookインスタンス作成
		
		//シートをワークブックに追加する
		for(int j=0; j<lists.length; j++){
			HSSFSheet hs1 = hwb.createSheet();// 新しいシート対象を作成する
			hwb.setSheetName(j, names[j]);	// 作成したシートの名称

			List excellist=lists[j];
			HSSFFont font = hwb.createFont();
			font.setColor((short) 12);
			HSSFCellStyle style = hwb.createCellStyle();
	        style.setFont(font);

			HSSFRow hr = hs1.createRow((short) 0);// ヘッダー
			List headerlist=(List)excellist.get(0);
			for (int i = 0; i < headerlist.size(); i++) {
				HSSFCell cell = hr.createCell((short) i);// セル
				//cell.setEncoding(HSSFCell.ENCODING_UTF_16);// 必要であればコマンドアウト
				cell.setCellValue((String)headerlist.get(i));// セル文字列型のセット
				cell.setCellStyle(style);
			}
			
			for(int i = 1; i < excellist.size(); i++){
				List valuelist=(List)excellist.get(i);
				hr = hs1.createRow((short) i);// 新しい行
				for (int ii = 0; ii < valuelist.size(); ii++) {
					HSSFCell cell = hr.createCell((short) ii);// セル
					//cell.setEncoding(HSSFCell.ENCODING_UTF_16);// 必要であればコマンドアウト
					cell.setCellValue((String)valuelist.get(ii));// セル文字列型のセット
				}
			}	
		}		
		return hwb;
	}
	
	public static void main(String[] args) throws Exception {
	}
}

