Apache的Jakata項(xiàng)目的POI子項(xiàng)目,,目標(biāo)是處理ole2對(duì)象,。
POI可以到
http://www./dyn/closer.cgi/jakarta/poi/
下載。
編譯好的jar主要有這樣4個(gè):poi包,poi Browser包,poi hdf包,poi hssf例程包,。實(shí)際運(yùn)行時(shí),,需要有poi包就可以了。
HSSF提供給用戶使用的對(duì)象在org.apache.poi.hssf.usermodel包中,主要部分包括Excell對(duì)象,,樣式和格式,,還有輔助操作。有以下幾種對(duì)象:
HSSFWorkbook excell的文檔對(duì)象
HSSFSheet excell的表單
HSSFRow excell的行
HSSFCell excell的格子單元
HSSFFont excell字體
HSSFName 名稱
HSSFDataFormat 日期格式
在poi1.7中才有以下2項(xiàng):
HSSFHeader sheet頭
HSSFFooter sheet尾
和這個(gè)樣式
HSSFCellStyle cell樣式
輔助操作包括
HSSFDateUtil 日期
HSSFPrintSetup 打印
HSSFErrorConstants 錯(cuò)誤信息表
下面是一個(gè)簡(jiǎn)單的例子:
*
*/
package com.justinmobile.payease.admin.commons.excel;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* 生成導(dǎo)出Excel文件對(duì)象
*
* @author John.Zhu
*
*/
public class XLSExport {
// 設(shè)置cell編碼解決中文高位字節(jié)截?cái)?/span>
private static short XLS_ENCODING = HSSFWorkbook.ENCODING_UTF_16;
// 定制日期格式
private static String DATE_FORMAT = " m/d/yy " ; // "m/d/yy h:mm"
// 定制浮點(diǎn)數(shù)格式
private static String NUMBER_FORMAT = " #,##0.00 " ;
private String xlsFileName;
private HSSFWorkbook workbook;
private HSSFSheet sheet;
private HSSFRow row;
/**
* 初始化Excel
*
* @param fileName
* 導(dǎo)出文件名
*/
public XLSExport(String fileName) {
this .xlsFileName = fileName;
this .workbook = new HSSFWorkbook();
this .sheet = workbook.createSheet();
}
/**
* 導(dǎo)出Excel文件
*
* @throws XLSException
*/
public void exportXLS() throws XLSException {
try {
FileOutputStream fOut = new FileOutputStream(xlsFileName);
workbook.write(fOut);
fOut.flush();
fOut.close();
} catch (FileNotFoundException e) {
throw new XLSException( " 生成導(dǎo)出Excel文件出錯(cuò)! " , e);
} catch (IOException e) {
throw new XLSException( " 寫(xiě)入Excel文件出錯(cuò)! " , e);
}
}
/**
* 增加一行
*
* @param index
* 行號(hào)
*/
public void createRow( int index) {
this .row = this .sheet.createRow(index);
}
/**
* 設(shè)置單元格
*
* @param index
* 列號(hào)
* @param value
* 單元格填充值
*/
public void setCell( int index, String value) {
HSSFCell cell = this .row.createCell(( short ) index);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setEncoding(XLS_ENCODING);
cell.setCellValue(value);
}
/**
* 設(shè)置單元格
*
* @param index
* 列號(hào)
* @param value
* 單元格填充值
*/
public void setCell( int index, Calendar value) {
HSSFCell cell = this .row.createCell(( short ) index);
cell.setEncoding(XLS_ENCODING);
cell.setCellValue(value.getTime());
HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell樣式
cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(DATE_FORMAT)); // 設(shè)置cell樣式為定制的日期格式
cell.setCellStyle(cellStyle); // 設(shè)置該cell日期的顯示格式
}
/**
* 設(shè)置單元格
*
* @param index
* 列號(hào)
* @param value
* 單元格填充值
*/
public void setCell( int index, int value) {
HSSFCell cell = this .row.createCell(( short ) index);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(value);
}
/**
* 設(shè)置單元格
*
* @param index
* 列號(hào)
* @param value
* 單元格填充值
*/
public void setCell( int index, double value) {
HSSFCell cell = this .row.createCell(( short ) index);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(value);
HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell樣式
HSSFDataFormat format = workbook.createDataFormat();
cellStyle.setDataFormat(format.getFormat(NUMBER_FORMAT)); // 設(shè)置cell樣式為定制的浮點(diǎn)數(shù)格式
cell.setCellStyle(cellStyle); // 設(shè)置該cell浮點(diǎn)數(shù)的顯示格式
}
}
調(diào)用的過(guò)程:
*
*/
package com.justinmobile.payease.admin.commons.excel;
import java.util.Calendar;
/**
* 導(dǎo)出Excel示例
*
* @author John.Zhu
*
*/
public class XLSDemo {
public static void main(String[] args) {
System.out.println( " 開(kāi)始導(dǎo)出Excel文件 " );
XLSExport e = new XLSExport( " d:/test.xls " );
e.createRow( 0 );
e.setCell( 0 , " 編號(hào) " );
e.setCell( 1 , " 名稱 " );
e.setCell( 2 , " 日期 " );
e.setCell( 3 , " 金額 " );
e.createRow( 1 );
e.setCell( 0 , 1 );
e.setCell( 1 , " 工商銀行 " );
e.setCell( 2 , Calendar.getInstance());
e.setCell( 3 , 111123.99 );
e.createRow( 2 );
e.setCell( 0 , 2 );
e.setCell( 1 , " 招商銀行 " );
e.setCell( 2 , Calendar.getInstance());
e.setCell( 3 , 222456.88 );
try {
e.exportXLS();
System.out.println( " 導(dǎo)出Excel文件[成功] " );
} catch (XLSException e1) {
System.out.println( " 導(dǎo)出Excel文件[失敗] " );
e1.printStackTrace();
}
}
}
參考文檔: http://jakarta./poi/hssf/quick-guide.html