在Java中讀寫Excel文件

Jakarta的POI項目提供了一組操縱Windows文檔的Java API,如下幾個類提供了操作Excel文件的方便的途徑:HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell,分別代表了Excel電子表格中的Book、Sheet、行和單元格。   你可以在下面地址下載到最新的POI工具包:   http://jakarta.apache.org/poi/index.html   下面的代碼創建一個Excel文件test.xls,並在第一行的第一格中寫入一條消息:   import org.apache.poi.hssf.usermodel.*;   import java.io.FileOutputStream;   // code run against the jakarta-poi-1.5.0-FINAL-20020506.jar.   public class PoiTest {   static public void main(String[] args) throws Exception {   FileOutputStream fos = new FileOutputStream("d:/test.xls");   HSSFWorkbook wb = new HSSFWorkbook();   HSSFSheet s = wb.createSheet();   wb.setSheetName(0, "first sheet");   HSSFRow row = s.createRow(0);   HSSFCell cell = row.createCell(0);   cell.setCellValue("Hello! This message is generated from POI.");   wb.write(fos);   fos.close();    }   }   讀取Excel文件時,首先生存一個POIFSFileSystem對象,由POIFSFileSystem對象構造一個HSSFWorkbook,該HSSFWorkbook對象就代表了Excel文檔。下面代碼讀取上面生成的Excel文件寫入的消息字串: POIFSFileSystem fs = null;   HSSFWorkbook wb = null;   try {   fs = new POIFSFileSystem(new FileInputStream("d:/test.xls"));   wb = new HSSFWorkbook(fs);   } catch (IOException e) {   e.printStackTrace();   }   HSSFSheet sheet = wb.getSheetAt(0);   HSSFRow row = sheet.getRow(0);   HSSFCell cell = row.getCell((short) 0);   String msg = cell.getStringCellValue(); 另外一個例子: import org.apache.poi.hssf.usermodel.*; import java.io.FileOutputStream; import java.io.IOException; public class CreateCells { public static void main(String[] args) throws IOException { HSSFWorkbook wb = new HSSFWorkbook(); //建立新HSSFWorkbook對象 HSSFSheet sheet = wb.createSheet("new sheet"); //建立新的sheet對象 // Create a row and put some cells in it. Rows are 0 based. HSSFRow row = sheet.createRow((short)0); //建立新行 // Create a cell and put a value in it. HSSFCell cell = row.createCell((short)0); //建立新cell cell.setCellvalue(1);//設置cell的整數類型的值 // Or do it on one line. row.createCell((short)1).setCellvalue(1.2); //設置cell浮點類型的值 row.createCell((short)2).setCellvalue("test"); //設置cell字符類型的值 row.createCell((short)3).setCellvalue(true); //設置cell布爾類型的值 HSSFCellStyle cellStyle = wb.createCellStyle(); //建立新的cell樣式 cellStyle.setDataFormat (HSSFDataFormat.getFormat("m/d/yy h:mm")); //設置cell樣式爲定製的日期格式 HSSFCell dCell =row.createCell((short)4); dCell.setCellvalue(new Date()); //設置cell爲日期類型的值 dCell.setCellStyle(cellStyle); //設置該cell日期的顯示格式 HSSFCell csCell =row.createCell((short)5); csCell.setEncoding(HSSFCell.ENCODING_UTF_16); //設置cell編碼解決中文高位字節截斷 csCell.setCellvalue("中文測試_Chinese Words Test"); //設置中西文結合字符串 row.createCell((short)6).setCellType (HSSFCell.CELL_TYPE_ERROR); //建立錯誤cell // Write the output to a file FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close(); } }   
發佈了50 篇原創文章 · 獲贊 0 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章