excel
此操作使用POI類庫,請到以下URL下載:
http://apache.justdn.org/jakarta/poi/release/bin/poi-bin-2.5.1-final-20040804.zip
以下是源碼:
package com.test;
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.FileInputStream;
import javax.swing.JOptionPane;
/**
* 一個Excel檔案的層次:Excel檔案->工作表->行->儲存格
* 對應到POI中,為:workbook->sheet->row->cell
*/
public class POITest
{
public static String outputFile = "e:\\test.xls";
public static String fileToBeRead = "e:\\test.xls";
public void createExcel()
{
try
{
// 建立新的Excel 活頁簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel活頁簿中建一工作表,其名為預設值
// 如要建立一名為"效益指標"的工作表,其語句為:
// HSSFSheet sheet = workbook.createSheet("效益指標");
HSSFSheet sheet = workbook.createSheet("效益指標");
// 在索引0的位置建立行(最頂端的行)
HSSFRow row = sheet.createRow((short)0);
//在索引0的位置建立儲存格(左上端)
HSSFCell cell = row.createCell((short)0);
// 定義儲存格為字串類型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 在儲存格中輸入一些內容
cell.setCellValue("POI Excel Model");
//下一行
row=sheet.createRow( (short)1);
cell=row.createCell( (short)0);
//設定儲存格內容
cell.setCellValue( "Powered by 夏天");
// 建立一輸出檔案流
FileOutputStream fOut = new FileOutputStream(outputFile);
// 把相應的Excel 活頁簿存檔
workbook.write(fOut);
fOut.flush();
// 操作結束,關閉檔案
fOut.close();
System.out.println("檔案產生...");
}
catch(Exception e)
{
System.out.println("已運行 xlCreate() : " + e);
}
}
public void readExcel()
{
try
{
// 建立對Excel活頁簿檔案的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
//System.out
// .println("===SheetsNum===" + workbook.getNumberOfSheets());//擷取sheet數
for(int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++)
{
if(null != workbook.getSheetAt(numSheets))
{
HSSFSheet aSheet = workbook.getSheetAt(numSheets); //獲得一個sheet
for(int rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++)
{
if(null != aSheet.getRow(rowNumOfSheet))
{
HSSFRow aRow = aSheet.getRow(rowNumOfSheet);
for(short cellNumOfRow = 0; cellNumOfRow <= aRow.getLastCellNum(); cellNumOfRow++)
{
if(null != aRow.getCell(cellNumOfRow))
{
HSSFCell aCell = aRow.getCell(cellNumOfRow);
System.out.println(aCell.getStringCellValue());
}
}
}
}
}
}
}
catch(Exception e)
{
System.out.println("ReadExcelError" + e);
}
}
public static void main(String[] args)
{
POITest poi = new POITest();
poi.createExcel();
JOptionPane.showMessageDialog(null,"檔案寫入成功","POI",1);
poi.readExcel();
JOptionPane.showMessageDialog(null,"檔案讀取成功","POI",1);
}
}