只要有表格就会有Microsoft Excel用Microsoft Excel处理数据已成为不少人的习惯Jakarta POI API就为Java程序员提供了一条存取Microsoft文档格式的神奇之路其中最成熟的就是能存取Microsoft Excel文档的HSSF API
本篇文章就举例示范如何利用Java 创建和读取Excel文档并设置单元格的字体和格式
为了保证示例程序的运行必须安装Java sdk 和Jakarta POIJakarta POI的Web站点是:
创建Excel 文档
示例将演示如何利用Jakarta POI API 创建Excel 文档
示例程序如下
import orgapachepoihssfusermodelHSSFWorkbook;
import orgapachepoihssfusermodelHSSFSheet;
import orgapachepoihssfusermodelHSSFRow;
import orgapachepoihssfusermodelHSSFCell;
import javaioFileOutputStream;
public class CreateXL {
/** Excel 文件要存放的位置假定在D盘JTest目录下*/
public static String outputFile=D:/JTest/ gongyexls;
public static void main(String argv[]){
try{
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表其名为缺省值
// 如要新建一名为效益指标的工作表其语句为
// HSSFSheet sheet = workbookcreateSheet(效益指标);
HSSFSheet sheet = workbookcreateSheet();
// 在索引的位置创建行(最顶端的行)
HSSFRow row = sheetcreateRow((short));
//在索引的位置创建单元格(左上端)
HSSFCell cell = rowcreateCell((short) );
// 定义单元格为字符串类型
cellsetCellType(HSSFCellCELL_TYPE_STRING);
// 在单元格中输入一些内容
cellsetCellValue(增加值);
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(outputFile);
// 把相应的Excel 工作簿存盘
workbookwrite(fOut);
fOutflush();
// 操作结束关闭文件
fOutclose();
Systemoutprintln(文件生成);
}catch(Exception e) {
Systemoutprintln(已运行 xlCreate() : + e );
}
}
}
读取Excel文档中的数据
示例将演示如何读取Excel文档中的数据假定在D盘JTest目录下有一个文件名为gongyexls的Excel文件
示例程序如下
import orgapachepoihssfusermodelHSSFWorkbook;
import orgapachepoihssfusermodelHSSFSheet;
import orgapachepoihssfusermodelHSSFRow;
import orgapachepoihssfusermodelHSSFCell;
import javaioFileInputStream;
public class ReadXL {
/** Excel文件的存放位置注意是正斜线*/
public static String fileToBeRead=D:/JTest/ gongyexls;
public static void main(String argv[]){
try{
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
// 创建对工作表的引用
// 本例是按名引用(让我们假定那张表有着缺省名Sheet)
HSSFSheet sheet = workbookgetSheet(Sheet);
// 也可用getSheetAt(int index)按索引引用
// 在Excel文档中第一张工作表的缺省索引是
// 其语句为HSSFSheet sheet = workbookgetSheetAt();
// 读取左上端单元
HSSFRow row = sheetgetRow();
HSSFCell cell = rowgetCell((short));
// 输出单元内容cellgetStringCellValue()就是取所在单元的值
Systemoutprintln(左上端单元是 + cellgetStringCellValue());
}catch(Exception e) {
Systemoutprintln(已运行xlRead() : + e );
}
}
}
设置单元格格式
在这里我们将只介绍一些和格式设置有关的语句我们假定workbook就是对一个工作簿的引用在Java中第一步要做的就是创建和设置字体和单元格的格式然后再应用这些格式
创建字体设置其为红色粗体
HSSFFont font = workbookcreateFont();
fontsetColor(HSSFFontCOLOR_RED);
fontsetBoldweight(HSSFFontBOLDWEIGHT_BOLD);
创建格式
HSSFCellStyle cellStyle= workbookcreateCellStyle();
cellStylesetFont(font);
应用格式
HSSFCell cell = rowcreateCell((short) );
cellsetCellStyle(cellStyle);
cellsetCellType(HSSFCellCELL_TYPE_STRING);
cellsetCellValue(标题 );
总之如本篇文章所演示的一样Java程序员不必担心Excel工作表中的数据了利用Jakarta POI API我们就可以轻易的在程序中存取Excel文档