Java中Excel写操作工具类--Java免费学习网

package com.common.excel;

import com.common.excel.exception.WriteExcelException;

import jxl.Workbook;
import jxl.WorkbookSettings;

import jxl.format.Alignment;

import jxl.write.DateFormats;
import jxl.write.DateTime;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

import java.io.File;

import java.sql.ResultSet;

import java.util.ArrayList;
import java.util.Date;

//import java.sql.ResultSetMetaData;
import java.util.List;
import java.util.Locale;


/**
 * @author ccj
 */
public class Write
{
    /**
     *防止外部构造
     */
    private Write() {
    }

    /**
     * 取得WriteExcel实例
     * @return
     */
    public static Write getInstance() {
        return new Write();
    }
    /**
     * 写一个空的Excel
     * @param sheetName
     * @param realFilePathAndName 文件名的真实路径
     * @throws WriteExcelException
     */
    public void write(String sheetName, String realFilePathAndName)
        throws WriteExcelException {
        this.write(sheetName, new ArrayList(), 0, new ArrayList(), 1,
            realFilePathAndName);
    }

    /**
     * 写Excel
     * @param sheetName sheet名,如果没有为NULL
     * @param titleList excel标题的集合
     * @param contentList excel内容的集合
     * @param realFilePathAndName 文件名的真实路径
     * @throws WriteExcelException
     */
    public void write(String sheetName, List titleList, List contentList,
        String realFilePathAndName) throws WriteExcelException {
        this.write(sheetName, titleList, 0, contentList, 1, realFilePathAndName);
    }

    /**
     * 写Excel   Java免费学习  Java自学网  http://www.javalearns.com
     * @param sheetName sheet名,如果没有为NULL
     * @param titleList excel标题的集合
     * @param titleRowNum 标题开始行,0为第一行
     * @param contentList excel内容的集合
     * @param contentStartRowNum 内容开始行,0为第一行
     * @param realFilePathAndName 文件名的真实路径
     * @throws WriteExcelException
     */
    public void write(String sheetName, List titleList, int titleRowNum,
        List contentList, int contentStartRowNum, String realFilePathAndName)
        throws WriteExcelException {
        WorkbookSettings ws = new WorkbookSettings();
        ws.setLocale(new Locale("zh", "CN"));

        try {
            WritableWorkbook workbook = Workbook.createWorkbook(new File(
                        realFilePathAndName), ws);
            WritableSheet sheet = null;

            if (sheetName != null) {
                sheet = workbook.createSheet(sheetName, 0);
            } else {
                sheet = workbook.createSheet("sheet", 0);
            }

            //验证行数
            if (titleRowNum < 0) {
                titleRowNum = 0;
            }

            if (contentStartRowNum <= titleRowNum) {
                contentStartRowNum = titleRowNum + 1;
            }

            //验证标题与内容
            if (titleList == null) {
                titleList = new ArrayList();
            }

            if (contentList == null) {
                contentList = new ArrayList();
            }

            WritableCellFormat wcf = new WritableCellFormat();
            wcf.setAlignment(Alignment.CENTRE);

            //循环生成标题
            for (int i = 0; i < titleList.size(); i++) {
                Label label = new Label(i, titleRowNum,
                        String.valueOf(titleList.get(i)), wcf);
                sheet.addCell(label);
            }

            for (int ii = 0; ii < contentList.size(); ii++) {
                //循环生成内容
                List list = (List) contentList.get(ii);

                for (int i = 0; i < list.size(); i++) {
                    Object value = list.get(i);

                    if (value instanceof Integer) {
                        Integer valueInt = (Integer) value;
                        Number n = new Number(i, contentStartRowNum,
                                valueInt.intValue());
                        sheet.addCell(n);
                    } else if (value instanceof Double) {
                        Double valueDouble = (Double) value;
                        Number n = new Number(contentStartRowNum, i,
                                valueDouble.doubleValue());
                        sheet.addCell(n);
                    } else if (value instanceof Boolean) {
                        Boolean valueBoolean = (Boolean) value;
                        jxl.write.Boolean b = new jxl.write.Boolean(contentStartRowNum,
                                i, valueBoolean.booleanValue());
                        sheet.addCell(b);
                    } else if (value instanceof Date) {
                        Date valueDate = (Date) value;
                        WritableCellFormat cf1 = new WritableCellFormat(DateFormats.FORMAT9);
                        DateTime dt = new DateTime(i, contentStartRowNum,
                                valueDate, cf1);
                        sheet.addCell(dt);
                    } else {
                        Label l = new Label(i, contentStartRowNum,
                                String.valueOf(value));
                        sheet.addCell(l);
                    }
                }

                contentStartRowNum++;
            }

            workbook.write();
            workbook.close();
        } catch (Exception e) {
            throw new WriteExcelException(e.toString());
        }
    }

    /**
     * 写Excel
     * @param sheetName sheet名,如果没有为NULL
     * @param titleList excel标题的集合
     * @param contentResultSet excel内容的数据库集合
     * @param realFilePathAndName 文件名的真实路径
     * @throws WriteExcelException
     */
    public void write(String sheetName, List titleList,
        ResultSet contentResultSet, String realFilePathAndName)
        throws WriteExcelException {
        //try{
        // ResultSetMetaData r =  contentResultSet.getMetaData();
        // r.getColumnCount();
        //}catch(Exception e){
        //}
        // 
    }

    /**
     * 写Excel
     * @param sheetName sheet名,如果没有为NULL
     * @param titleList excel标题的集合
     * @param titleRowNum 标题开始行,0为第一行
     * @param contentResultSet excel内容的数据库集合
     * @param contentStartRowNum 内容开始行,0为第一行
     * @param realFilePathAndName 文件名的真实路径
     * @throws WriteExcelException
     */
    public void write(String sheetName, List titleList, int titleRowNum,
        ResultSet contentResultSet, int contentStartRowNum,
        String realFilePathAndName) throws WriteExcelException {
    }

}

文章转载自 http://www.javalearns.com/Html/?1631.html
更多Java知识学习请访问 Java免费学习网  http://www.javalearns.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值