/**
* Excel WorkBook對象類
* @author zhouqian
*
*/
public class ExcelWorkBook {
/** 工作簿 */
private static HSSFWorkbook workbook = new HSSFWorkbook();
/** 工作表 */
private HSSFSheet sheet;
/** 表頭數據 */
private String[] tableHeader;
/**
* 構造函數
* @param workbookName 工作表名
* @param tableHeader 表頭數據
*/
public ExcelWorkBook(String workbookName, String[] tableHeader) {
super();
this.tableHeader = tableHeader;
sheet = workbook.createSheet(workbookName);
}
/**
* 創建表頭
* @param headerName
*/
public void createTableHeader(String headerName) {
HSSFHeader header = sheet.getHeader();
header.setCenter(headerName);
HSSFRow headerRow = sheet.createRow(0);
int cellNumber = tableHeader.length;
for (int i = 0; i < cellNumber; i++) {
HSSFCell headerCell = headerRow.createCell((short)i);
headerCell.setEncoding(HSSFCell.ENCODING_UTF_16);
headerCell.setCellValue(tableHeader[i]);
}
}
/**
* 創建行
* @param data 要寫入的數據
* @param rowIndex 第rowIndex行
*/
public void createTableRow(String[] data, int rowIndex) {
HSSFRow row = sheet.createRow(rowIndex);
for (int i = 0; i < data.length; i++) {
HSSFCell cell = row.createCell((short)i);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(data[i]);
}
}
/**
* 創建整個Excel表
* @param headerName
*/
public void createExcelSheet(String headerName, String[][] data) {
this.createTableHeader(headerName);
String[] rowData;
for (int i = 0; i < data.length; i++) {
rowData = data[i];
createTableRow(rowData, i + 1);
}
}
/**
* 導出Excel表格
* @param os
* @throws IOException
*/
public void exportExcel(OutputStream os) throws IOException {
sheet.setGridsPrinted(true);
HSSFFooter footer = sheet.getFooter();
footer.setRight("Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages());
workbook.write(os);
}
public HSSFSheet getSheet() {
return sheet;
}
public void setSheet(HSSFSheet sheet) {
this.sheet = sheet;
}
public String[] getTableHeader() {
return tableHeader;
}
public void setTableHeader(String[] tableHeader) {
this.tableHeader = tableHeader;
}
}