此文件已经通过测试 OK, 需要poi-3.7-20101029.jar 等日志Jar包
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.List;
import org.apache.log4j.Logger;
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.HSSFRichTextString;
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.HSSFColor;
import org.apache.poi.hssf.util.Region;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class ExportExcelUtil {
private static Logger logger = Logger.getLogger(ExportExcelUtil.class);
private HSSFWorkbook workbook = null;
@SuppressWarnings("unused")
private HSSFSheet sheet = null;
public HSSFWorkbook getWorkbook() {
return workbook;
}
public void setWorkbook(HSSFWorkbook workbook) {
this.workbook = workbook;
}
// public HSSFSheet getSheet() {
// return sheet;
// }
// public void setSheet(HSSFSheet sheet) {
// this.sheet = sheet;
// }
public ExportExcelUtil(HSSFWorkbook workbook){
this.workbook = workbook;
}
public ExportExcelUtil(HSSFWorkbook workbook, HSSFSheet sheet) {
super();
this.workbook = workbook;
this.sheet = sheet;
}
/**
* 创建通用的Excel空白行信息
* @param workbook 如果为空 则没有样式
* @param sheet (创建sheet)
* @param rowNO 报表的单行行号(创建第几行)
* @param rowHeight 报表的单行行高
* @param colNum 报表的总列数 (合并)
*/
public void createExcelRow(HSSFWorkbook workbook, HSSFSheet sheet, int rowNO, int rowHeight, int colNum) {
createExcelRow(workbook, sheet, rowNO, -1, colNum, null, -1, null, null);
}
/**
* 创建通用的Excel带标题行信息
* @param workbook 如果为空 则没有样式
* @param sheet (创建sheet)
* @param rowNO 报表的单行行号(创建第几行)
* @param rowHeight 报表的单行行高
* @param colNum 报表的总列数 (合并)
* @param fontCaption 报表行中显示的字符
*/
public void createExcelRow(HSSFWorkbook workbook, HSSFSheet sheet, int rowNO, int rowHeight, int colNum, String fontCaption) {
createExcelRow(workbook, sheet, rowNO, -1, colNum, fontCaption, -1, null, null);
}
/**
* 创建通用的Excel行信息
* @param workbook 如果为空 则没有样式
* @param sheet (创建sheet)
* @param rowNO 报表的单行行号(创建第几行)
* @param rowHeight 报表的单行行高
* @param colNum 报表的总列数 (合并)
* @param fontCaption 报表行中显示的字符
* @param fontSize 字体的大小 (字体大小 默认 200)
* @param fontWeight 报表表头显示的字符
* @param align 字体水平位置 (center中间 right右 left左)
* @param colNum 报表的列数
*/
@SuppressWarnings("deprecation")
public void createExcelRow(HSSFWorkbook workbook, HSSFSheet sheet, int rowNO, int rowHeight, int colNum, String fontCaption, int fontSize, String fontWeight, String align) {
if(colNum < 0) {
logger.debug(this.getClass().getName() + " --> Excel column number is null");
colNum = 100;
}
HSSFRow row = sheet.createRow(rowNO); //创建第一行
row.setHeight((short) (rowHeight < 1 ? 300 : rowHeight)); //设置行高
HSSFCell cell = row.createCell(0);//设置第一行
cell.setCellType(HSSFCell.ENCODING_UTF_16); //定义单元格为字符串类型
cell.setCellValue(new HSSFRichTextString(fontCaption));
sheet.addMergedRegion(new Region(rowNO, (short) 0, rowNO, (short) (colNum - 1))); //指定合并区域
HSSFCellStyle cellStyle = createCellFontStyle(workbook, fontSize, fontWeight, align); //设定样式
if(cellStyle != null){
cell.setCellStyle(cellStyle);
}
}
/**
* 设置报表列头
* @param sheet (创建sheet)
* @param rowNO 报表的单行行号(创建第几行)
* @param rowHeight 报表的单行行高
* @param columnHeader 报表行中显示的字符
*/
public void createColumnHeader(HSSFSheet sheet, int rowNO, int rowHeight, String[] columnHeader) {
createColumnHeader(sheet, rowNO, rowHeight, columnHeader, -1, null, null);
}
/**
* 设置报表列头
* @param sheet (创建sheet)
* @param rowNO 报表的单行行号(创建第几行)
* @param rowHeight 报表的单行行高
* @param columnHeader 报表行中显示的字符
* @param fontSize 字体的大小 (字体大小 默认 200)
*/
public void createColumnHeader(HSSFSheet sheet, int rowNO, int rowHeight, String[] columnHeader, int fontSize) {
createColumnHeader(sheet, rowNO, rowHeight, columnHeader, fontSize, null, null);
}
/**
* 设置报表列头
* @param sheet (创建sheet)
* @param rowNO 报表的单行行号(创建第几行)
* @param rowHeight 报表的单行行高
* @param columnHeader 报表行中显示的字符
* @param fontSize 字体的大小 (字体大小 默认 200)
* @param fontWeight 报表表头显示的字符
* @param align 字体水平位置 (center中间 right右 left左)
*/
public void createColumnHeader(HSSFSheet sheet, int rowNO, int rowHeight, String[] columnHeader, int fontSize, String fontWeight,
String align) {
if(columnHeader == null || columnHeader.length < 1){
logger.debug(this.getClass().getName() + " --> Excel columnHeader is null");
return ;
}
HSSFRow row = sheet.createRow(rowNO);
row.setHeight((short) rowHeight);
HSSFCellStyle cellStyle = createCellFontStyle(workbook, fontSize, fontWeight, align);
if(cellStyle != null){
// 设置单元格背景色
cellStyle.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
}
HSSFCell cell = null;
for (int i = 0; i < columnHeader.length; i++) {
sheet.setColumnWidth(i, 20 * 256); //设置列宽,20个字符宽度。宽度参数为1/256,故乘以256
cell = row.createCell(i);
cell.setCellType(HSSFCell.ENCODING_UTF_16);
if(cellStyle != null){cell.setCellStyle(cellStyle);}
cell.setCellValue(new HSSFRichTextString(columnHeader[i]));
}
}
/**
* 创建数据行
* @param sheet (创建sheet)
* @param rowNO 报表的单行行号(创建第几行)
* @param rowHeight 报表的单行行高
* @param columnData 报表行中显示的数据
* @param maxValue Excel显示的最大上限
*/
public HSSFSheet createColumnData(HSSFSheet sheet, int rowNO, String[][] columnData, int maxValue){
maxValue = (maxValue < 1 || maxValue > 65535 ) ? 65535 : maxValue ;
int currRowNO = rowNO;
for (int numNO = currRowNO; numNO < columnData.length + currRowNO; numNO++) {
if (numNO% maxValue == 0) {
sheet = workbook.createSheet();
rowNO = 0;
}
createColumnDataDesc(sheet, numNO, rowNO, currRowNO, -1, columnData);
rowNO++;
}
return sheet;
}
/**
* 创建数据行
* @param sheet (创建sheet)
* @param numNO 序列号
* @param rowNO 报表的单行行号(创建第几行)
* @param currRowNO 初始行号
* @param rowHeight 报表的单行行高
* @param columnData 报表行中显示的数据
*/
private void createColumnDataDesc(HSSFSheet sheet, int numNO, int rowNO, int currRowNO, int rowHeight, String[][] columnData) {
createColumnDataDesc(sheet, numNO, rowNO, currRowNO, rowHeight, columnData, -1, null, null);
}
/**
* 创建数据行
* @param sheet (创建sheet)
* @param rowNO 报表的单行行号(创建第几行)
* @param rowHeight 报表的单行行高
* @param columnData 报表行中显示的数据
* @param fontSize 字体大小 默认 200
* @param fontWeight 字体粗细 ( 值为bold 为加粗)
* @param align 字体水平位置 (center中间 right右 left左)
* @param maxValue Excel显示的最大上限
*/
public HSSFSheet createColumnData(HSSFSheet sheet, int rowNO, int rowHeight, String[][] columnData, int fontSize, String fontWeight, String align, int maxValue){
maxValue = (maxValue < 1 || maxValue > 65535 ) ? 65535 : maxValue ;
int currRowNO = rowNO;
for (int numNO = currRowNO; numNO < columnData.length + currRowNO; numNO++) {
if (numNO% maxValue == 0) {
sheet = workbook.createSheet();
rowNO = 0;
}
createColumnDataDesc(sheet, numNO, rowNO, currRowNO, rowHeight, columnData, fontSize, fontWeight, align);
rowNO++;
}
return sheet;
}
/**
* 创建数据行
* @param sheet (创建sheet)
* @param numNO 序列号
* @param rowNO 报表的单行行号(创建第几行)
* @param currRowNO 初始行号
* @param rowHeight 报表的单行行高
* @param columnData 报表行中显示的数据
* @param fontSize 字体的大小 (字体大小 默认 200)
* @param fontWeight 报表表头显示的字符
* @param align 字体水平位置 (center中间 right右 left左)
*/
private void createColumnDataDesc(HSSFSheet sheet, int numNO, int rowNO, int currRowNO, int rowHeight, String[][] columnData, int fontSize, String fontWeight,
String align) {
if(columnData == null || columnData.length < 1){
logger.debug(this.getClass().getName() + " --> Excel columnData is null");
// return ;
}
HSSFRow row = sheet.createRow(rowNO);
row.setHeight((short) rowHeight);
HSSFCellStyle cellStyle =null;// createCellFontStyle(workbook, fontSize, fontWeight, align);
if(cellStyle != null){
cellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 指定单元格居中对齐
} else {
cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION); // 指定单元格居中对齐
}
HSSFCell cell = null;
for (int i = 0; i < columnData[numNO - currRowNO].length; i++) {
sheet.setColumnWidth(i, 20 * 256); //设置列宽,20个字符宽度。宽度参数为1/256,故乘以256
cell = row.createCell(i);
cell.setCellType(HSSFCell.ENCODING_UTF_16);
if(cellStyle != null){cell.setCellStyle(cellStyle);}
cell.setCellValue(new HSSFRichTextString(columnData[numNO - currRowNO][i]));
}
}
/**
* 创建内容单元格
* @param workbook HSSFWorkbook
* @param row HSSFRow
* @param columnNumber short型的列索引
* @param alignType 对齐方式 (默认居中对齐,如果 alignType=true 则左对齐)
* @param value 列值
*/
@SuppressWarnings("deprecation")
public void cteateDataCell(HSSFWorkbook workbook, HSSFRow row, int columnNumber, boolean alignType, String value) {
HSSFCell cell = row.createCell(((short) columnNumber));
cell.setCellType(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(new HSSFRichTextString(value));
HSSFCellStyle cellstyle = workbook.createCellStyle();
short align = HSSFCellStyle.ALIGN_CENTER_SELECTION;
if(alignType){
align = HSSFCellStyle.ALIGN_LEFT;
}
cellstyle.setAlignment(align); // 指定单元格居中对齐
cell.setCellStyle(cellstyle);
}
/**
* 创建通用的Excel最后一行的信息 (创建合计行 (最后一行))
* @param workbook 如果为空 则没有样式
* @param sheet
* @param colNum 报表的总列数 (合并)
* @param fontCaption 报表行中显示的字符
* @param fontSize 字体的大小 (字体大小 默认 200)
* @param fontWeight 报表表头显示的字符
* @param align 字体水平位置 (center中间 right右 left左)
* @param colNum 报表的列数 (需要合并到的列索引)
*
*/
@SuppressWarnings("deprecation")
public void createSummaryRow(HSSFWorkbook workbook, HSSFSheet sheet,
int colNum, String fontCaption, int fontSize, String fontWeight,
String align) {
HSSFCellStyle cellStyle = createCellFontStyle(workbook, fontSize, fontWeight, align);
HSSFRow lastRow = sheet.createRow((short) (sheet.getLastRowNum() + 1));
HSSFCell sumCell = lastRow.createCell(0);
sumCell.setCellValue(new HSSFRichTextString(fontCaption));
if(cellStyle != null){sumCell.setCellStyle(cellStyle);}
sheet.addMergedRegion(new Region(sheet.getLastRowNum(), (short) 0, sheet.getLastRowNum(), (short) (colNum - 1)));// 指定合并区域
}
/**
* 设置字体样式 (字体为宋体 ,上下居中对齐,可设置左右对齐,字体粗细,字体大小 )
* @param workbook 如果为空 则没有样式
* @param fontSize 字体大小 默认 200
* @param fontWeight 字体粗细 ( 值为bold 为加粗)
* @param align 字体水平位置 (center中间 right右 left左)
*/
public HSSFCellStyle createCellFontStyle(HSSFWorkbook workbook, int fontSize, String fontWeight, String align){
if(workbook == null){
logger.debug(this.getClass().getName() + " --> Excel HSSFWorkbook FontStyle is not set");
return null;
}
HSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 指定单元格居中对齐
if(align != null && align.equalsIgnoreCase("left")){
cellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT); // 指定单元格居中对齐
}
if(align != null && align.equalsIgnoreCase("right")){
cellStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT); // 指定单元格居中对齐
}
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 指定单元格垂直居中对齐
cellStyle.setWrapText(true);// 指定单元格自动换行
// 单元格字体
HSSFFont font = workbook.createFont();
if(fontWeight != null && fontWeight.equalsIgnoreCase("normal")){
font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
} else{
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
}
font.setFontName("宋体");
font.setFontHeight((short) (fontSize < 1 ? 200 : fontSize) );
cellStyle.setFont(font);
// 设置字体
// HSSFFont font = workbook.createFont();
// font.setFontHeightInPoints((short) 20); //字体高度
// font.setColor(HSSFFont.COLOR_RED); //字体颜色
// font.setFontName("黑体"); //字体
// font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //宽度
// font.setItalic(true); //是否使用斜体
// font.setStrikeout(true); //是否使用划线
// // 添加单元格注释
// // 创建HSSFPatriarch对象,HSSFPatriarch是所有注释的容器.
// HSSFPatriarch patr = sheet.createDrawingPatriarch();
// // 定义注释的大小和位置,详见文档
// HSSFComment comment = patr.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short)4, 2, (short) 6, 5));
// // 设置注释内容
// comment.setString(new HSSFRichTextString("可以在POI中添加注释!"));
// // 设置注释作者. 当鼠标移动到单元格上是可以在状态栏中看到该内容.
// comment.setAuthor("Xuys.");
return cellStyle;
}
/**
* 导出EXCEL文件
* @param fileName 文件名称
* 测试程序
*
* // private static HSSFWorkbook workbook = new HSSFWorkbook();
// private static HSSFSheet sheet = workbook.createSheet();
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
ExportExcelUtil eeu = new ExportExcelUtil(workbook, sheet);
String[] strArr = new String[] { "序号", "姓名", "性 别", "出生年月", "民族", "籍贯", "备注" };
int colNum = strArr.length;
int rowNO = 0;
//1. titleCaption
eeu.createExcelRow(workbook, sheet, rowNO, -1, colNum, "统计报表"); // , 250, "bold", "center"
//2.
rowNO++;
eeu.createExcelRow(workbook, sheet, rowNO, 200, colNum,
" 制 表 人: 赵小明 制 表 日 期: " + new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date()), 180, "normal", "right");
//3.columnTitleHeader
rowNO++;
eeu.createColumnHeader(sheet, rowNO, 300, strArr);
//4.数据行 循环创建中间的单元格的各项的值
rowNO++;
String[][] columnData = new String[][]{{ "1", "zhangsan", "男", "1985-10-06 21:00:00", "汉族", "西安", "学生" },
{ "2", "猪猪", "女", "出生年月", "民族", "籍贯", "备注" },
{ "3", "明明", "男", "1980-07-08", "汉族", "西安", "学生" },
{ "4", "光光", "女", "1985-06-30", "汉族", "西安", "学生" },
{ "5", "先民", "男", "1987-06-06", "汉族", "西安", "学生" },
{ "6", "数据", "女", "1985-04-06", "汉族", "西安", "学生" },
{ "7", "历史", "女", "1985-06-06", "汉族", "西安", "学生" },
{ "8", "妩媚", "女", "1990-10-06", "汉族", "西安", "学生" },
{ "9", "李斯", "男", "1985-06-20", "汉族", "西安", "学生" },
{ "10", "犀利", "女", "1985-06-06", "汉族", "西安", "学生" },
{ "11", "绅士", "男", "1985-01-06", "汉族", "西安", "学生" },
{ "12", "先知", "女", "1984-06-06", "汉族", "西安", "学生" },
{ "13", "精明", "男", "1985-06-12", "汉族", "西安", "学生" },
{ "14", "科技", "男", "1972-02-03", "汉族", "西安", "学生" },
{ "15", "软件", "女", "1985-02-06", "汉族", "西安", "学生" },
{ "16", "世道", "男", "1999-03-06", "汉族", "西安", "学生" },
{ "17", "明了", "女", "1985-06-06", "汉族", "西安", "学生" },
{ "18", "小明", "男", "1984-06-09", "汉族", "西安", "学生" },
{ "19", "高娟", "女", "1985-03-06", "汉族", "西安", "学生" },
{ "20", "小莉", "女", "1987-12-25", "汉族", "西安", "学生" }} ;
sheet = eeu.createColumnData(sheet, rowNO, columnData, 7);
eeu.createSummaryRow(workbook, sheet, colNum, "合计:" + columnData.length, 180, "normal", "right");
eeu.exportExcel("f://Test2011-07-29//test.xls");
*/
public void exportExcel(String fileName) {
OutputStream os = null;
try{
os = new FileOutputStream(new File(fileName));
workbook.write(os);
os.close();
}catch(Exception e){
logger.debug(this.getClass().getName() + " --> export Excel file error :" + e.getMessage());
}
}
/**
* 利用模板导出Excel
* @param inputFile 输入模板文件路径
* @param outputFile 输入文件存放于服务器路径
* @param dataList 待导出数据
* @throws Exception
* @roseuid:
*/
@SuppressWarnings("deprecation")
public void exportExcelFile(String inputFileName, String outputFileName,
List<?> dataList) throws Exception {
// 用模板文件构造poi
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(inputFileName));
// 创建模板工作表
HSSFWorkbook templatewb = new HSSFWorkbook(fs);
// 直接取模板第一个sheet对象
HSSFSheet templateSheet = templatewb.getSheetAt(1);
if (dataList.size()% 65535 == 0) {
templateSheet = templatewb.createSheet();
}
// 得到模板的第一个sheet的第一行对象 为了得到模板样式
HSSFRow templateRow = templateSheet.getRow(0);
// HSSFSheet timplateSheet = templatewb.getSheetAt(1);
// 取得Excel文件的总列数
int columns = templateSheet.getRow((short) 0)
.getPhysicalNumberOfCells();
System.out.println("columns is : " + columns);
// 创建样式数组
HSSFCellStyle styleArray[] = new HSSFCellStyle[columns];
// 一次性创建所有列的样式放在数组里
for (int s = 0; s < columns; s++) {
// 得到数组实例
styleArray[s] = templatewb.createCellStyle();
}
// 循环对每一个单元格进行赋值
// 定位行
for (int rowId = 1; rowId < dataList.size(); rowId++) {
// 依次取第rowId行数据 每一个数据是valueList
List<?> valueList = (List<?>) dataList.get(rowId - 1);
// 定位列
for (int columnId = 0; columnId < columns; columnId++) {
// 依次取出对应与colunmId列的值
// 每一个单元格的值
String dataValue = (String) valueList.get(columnId);
// 取出colunmId列的的style
// 模板每一列的样式
HSSFCellStyle style = styleArray[columnId];
// 取模板第colunmId列的单元格对象
// 模板单元格对象
HSSFCell templateCell = templateRow.getCell((short) columnId);
// 创建一个新的rowId行 行对象
// 新建的行对象
HSSFRow hssfRow = templateSheet.createRow(rowId);
// 创建新的rowId行 columnId列 单元格对象
// 新建的单元格对象
HSSFCell cell = hssfRow.createCell((short) columnId);
// 如果对应的模板单元格 样式为非锁定
if (templateCell.getCellStyle().getLocked() == false) {
// 设置此列style为非锁定
style.setLocked(false);
// 设置到新的单元格上
cell.setCellStyle(style);
}
// 否则样式为锁定
else {
// 设置此列style为锁定
style.setLocked(true);
// 设置到新单元格上
cell.setCellStyle(style);
}
// 设置编码
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
// Debug.println( "dataValue : " + dataValue);
// 设置值 统一为String
cell.setCellValue(dataValue);
}
}
// 设置输入流
FileOutputStream fOut = new FileOutputStream(outputFileName);
// 将模板的内容写到输出文件上
templatewb.write(fOut);
fOut.flush();
// 操作结束,关闭文件
fOut.close();
}
public static void main(String[] args) {
// private static HSSFWorkbook workbook = new HSSFWorkbook();
// private static HSSFSheet sheet = workbook.createSheet();
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
ExportExcelUtil eeu = new ExportExcelUtil(workbook, sheet);
String[] strArr = new String[] { "序号", "姓名", "性 别", "出生年月", "民族", "籍贯", "备注" };
int colNum = strArr.length;
int rowNO = 0;
//1. titleCaption
eeu.createExcelRow(workbook, sheet, rowNO, -1, colNum, "统计报表"); // , 250, "bold", "center"
//2.
rowNO++;
eeu.createExcelRow(workbook, sheet, rowNO, 200, colNum,
" 制 表 人: 赵小明 制 表 日 期: " + new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date()), 180, "normal", "right");
//3.columnTitleHeader
rowNO++;
eeu.createColumnHeader(sheet, rowNO, 300, strArr);
//4.数据行 循环创建中间的单元格的各项的值
rowNO++;
String[][] columnData = new String[][]{{ "1", "zhangsan", "男", "1985-10-06 21:00:00", "汉族", "西安", "学生" },
{ "2", "猪猪", "女", "出生年月", "民族", "籍贯", "备注" },
{ "3", "明明", "男", "1980-07-08", "汉族", "西安", "学生" },
{ "4", "光光", "女", "1985-06-30", "汉族", "西安", "学生" },
{ "5", "先民", "男", "1987-06-06", "汉族", "西安", "学生" },
{ "6", "数据", "女", "1985-04-06", "汉族", "西安", "学生" },
{ "7", "历史", "女", "1985-06-06", "汉族", "西安", "学生" },
{ "8", "妩媚", "女", "1990-10-06", "汉族", "西安", "学生" },
{ "9", "李斯", "男", "1985-06-20", "汉族", "西安", "学生" },
{ "10", "犀利", "女", "1985-06-06", "汉族", "西安", "学生" },
{ "11", "绅士", "男", "1985-01-06", "汉族", "西安", "学生" },
{ "12", "先知", "女", "1984-06-06", "汉族", "西安", "学生" },
{ "13", "精明", "男", "1985-06-12", "汉族", "西安", "学生" },
{ "14", "科技", "男", "1972-02-03", "汉族", "西安", "学生" },
{ "15", "软件", "女", "1985-02-06", "汉族", "西安", "学生" },
{ "16", "世道", "男", "1999-03-06", "汉族", "西安", "学生" },
{ "17", "明了", "女", "1985-06-06", "汉族", "西安", "学生" },
{ "18", "小明", "男", "1984-06-09", "汉族", "西安", "学生" },
{ "19", "高娟", "女", "1985-03-06", "汉族", "西安", "学生" },
{ "20", "小莉", "女", "1987-12-25", "汉族", "西安", "学生" }} ;
sheet = eeu.createColumnData(sheet, rowNO, columnData, 7);
eeu.createSummaryRow(workbook, sheet, colNum, "合计:" + columnData.length, 180, "normal", "right");
eeu.exportExcel("f://Test2011-07-29//test.xls");
/*
在用java 编写生成报表时发现了个问题,将行,列隐藏,将列隐藏很简单用
this.sheet.setColumnHidden((short)12, true);将第13列隐藏注意excel的第一列用0表示
隐藏行:
HSSFRow row = sheet.getRow(8);
row.setZeroHeight(true);
将第8行隐藏就是将他的高度设为0也等同为隐藏
*/
}
}
javaPOI导出excel代码
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.