贴一段关于写excel的代码
/*
* Created on May 23, 2006
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.poitest.samples;
/**
* @author ex_yinlei
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
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.HSSFFooter;
import org.apache.poi.hssf.usermodel.HSSFPrintSetup;
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.hssf.util.Region;
/**
* <p>Title: </p>
* <p>Description:报表格式定义</p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: Ping An Insurance China Ltd.</p>
* @author ex_fengyuanlong
* @version 1.0
*/
public class ExcelHSSFWorkbook {
private static String[] titlesname = { "信息电子文档" };
private static final int sheetAmount = 1;
public static HSSFWorkbook getExcelWorkBook(List excelList, int sheetNO,
int sheetAmount) throws Exception {
HSSFWorkbook wb = new HSSFWorkbook();//建立新HSSFWorkbook对象
HSSFCellStyle styleTitle = wb.createCellStyle();//建立标题的cell样式
styleTitle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下边框
styleTitle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
styleTitle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
styleTitle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
styleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
styleTitle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
styleTitle.setWrapText(true);
HSSFCellStyle styleData = wb.createCellStyle();//建立数据格的cell样式
styleData.setAlignment(HSSFCellStyle.ALIGN_CENTER);
styleData.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
styleData.setWrapText(true);
styleData.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下边框
styleData.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
styleData.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
styleData.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
//int sheetAmount = ExcelFileProperty.getSheetAmount();
HSSFSheet[] sheets = new HSSFSheet[sheetAmount];
HSSFRow[][] rowRecords = new HSSFRow[sheetAmount][];
Map recordMap = null;
int columnNo;//列号
String[] tableTitles = null;//表格的标题
Object cellData = null;//单元格数据
for (int sheetNo = sheetNO; sheetNo < sheetAmount; sheetNo++) {
sheets[sheetNo] = wb.createSheet(ExcelFileProperty
.getSheetName(sheetNo));//建立新的sheet对象
HSSFPrintSetup ps = sheets[sheetNo].getPrintSetup();
sheets[sheetNo].setAutobreaks(true);
ps.setFitWidth((short) 1);
if (excelList != null && excelList.size() > 0) {
rowRecords[sheetNo] = new HSSFRow[excelList.size() + 1];
//Create a row and put some cells in it. Rows are 0 based.
rowRecords[sheetNo][0] = sheets[sheetNo].createRow((short) 0);//建立新行作为标题行
tableTitles = ExcelFileProperty.getTableTitles(sheetNo);
/* 设置标题行 */
for (columnNo = 0; columnNo < tableTitles.length; columnNo++) {
sheets[sheetNo]
.setColumnWidth(
(short) columnNo,
(short) (tableTitles[columnNo].getBytes().length * 256));
HSSFCell cell = rowRecords[sheetNo][0]
.createCell((short) columnNo);//建立新cell
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(tableTitles[columnNo]);//设置cell的标题值
cell.setCellStyle(styleTitle);
}
/* 设置内容行 */
for (int recordNo = 1; recordNo <= excelList.size(); recordNo++) {
recordMap = (Map) excelList.get(recordNo - 1);
//Create a row and put the record in cells.
rowRecords[sheetNo][recordNo] = sheets[sheetNo]
.createRow((short) (recordNo));//建立新行作为记录行
for (columnNo = 0; columnNo < tableTitles.length; columnNo++) {
HSSFCell cell = rowRecords[sheetNo][recordNo]
.createCell((short) columnNo);//建立新cell
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cellData = (Object) recordMap.get(ExcelFileProperty
.getCellKeys(sheetNo)[columnNo]);
if (cellData == null
|| cellData.toString().length() == 0) {
cellData = "";
}
cell.setCellValue(cellData.toString());//设置cell的值
cell.setCellStyle(styleData);
}
}
}
}
return wb;
}
}