JAVA导出Excel _JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JAVA导出Excel

JAVA导出Excel

 2012/3/28 17:29:41  zhangfeilo  程序员俱乐部  我要评论(0)
  • 摘要:packagelee;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStream;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;importjxl.Workbook;importjxl.format.Alignment
  • 标签:excel 导出excel Java
package lee;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.Pattern;
import jxl.format.UnderlineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

/**
 * 导出Excel文件
 * 
 * @author MrGao 2010-7-13下午02:19:51
 */
public class ExcelExport {
	public static void main(String[] args) {
		List list = new ArrayList();
		list.add(new String[] { "a", "b", "c" });
		list.add(new String[] { "a", "b", "c" });
		System.out.println(ExcelExport.class.getResource(""));
		createExcel(list, new String[] { "ID", "名称", "时间" }, "c:\\",
				String.valueOf(new Date().getTime()));
	}

	/**
	 * 生成Excel
	 * 
	 * @param models
	 *            数据List<String[]>
	 * @param className
	 *            导成Excel的实体列名组String[]
	 * @param tempPath
	 *            生成Excel存放的临时路径String
	 * @param excelName
	 *            生成的Excel名String
	 */
	public static void createExcel(List models, String[] classNames,
			String tempPath, String excelName) {
		// Class clasVo = null;

		try {
			// clasVo = Class.forName(className);
			OutputStream os = new FileOutputStream(tempPath + "\\" + excelName
					+ ".xls");
			WritableWorkbook workbook = Workbook.createWorkbook(os);
			WritableSheet sheet = workbook.createSheet(excelName, 0);
			// 用于标题
			WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 17,
					WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
					jxl.format.Colour.WHITE);
			WritableCellFormat wcf_title = new WritableCellFormat(titleFont);
			wcf_title.setBackground(Colour.TEAL, Pattern.SOLID);
			wcf_title.setBorder(Border.ALL, BorderLineStyle.DOUBLE,
					Colour.OCEAN_BLUE);
			wcf_title.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐
			wcf_title.setAlignment(Alignment.CENTRE);

			// 用于正文
			WritableFont NormalFont = new WritableFont(WritableFont.TAHOMA, 11);
			WritableCellFormat wcf_center = new WritableCellFormat(NormalFont);
			wcf_center.setBorder(Border.ALL, BorderLineStyle.DOUBLE,
					Colour.GRAY_25);
			wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直对齐
			wcf_center.setAlignment(Alignment.CENTRE);
			wcf_center.setWrap(true); // 是否换行

			sheet.addCell(new Label(0, 0, excelName, wcf_title));
			sheet.mergeCells(0, 0, classNames.length, 0);

			//设置列名
			for (int i = 0; i < classNames.length; i++) {
				sheet.setColumnView(i, classNames[i].length() * 5);
				sheet.addCell(new Label(i, 1, classNames[i], wcf_center));
			}

			int rowId = 2;// 写入第几行 第一行为列头 数据从第二行开始写
			//导入数据集
			for (Object ssTopModel : models) {
				int columnId = 0;// 写入第几列 第一列为自动计算的行号 数据从第二列开始写
				// 获取该类 并获取自身方法
				String[] strs = (String[]) ssTopModel;
				for (int i = 0; i < strs.length; i++) {
					try {
						sheet.addCell(new Label(columnId, rowId, strs[i],
								wcf_center));
					} catch (Exception e) {
						e.printStackTrace();
					}
					columnId++;
				}
				rowId++;
			}

			workbook.write();
			workbook.close();
			os.flush();
			os.close();
		} catch (WriteException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

?

发表评论
用户名: 匿名