此文件已經通過測試 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代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.