Java編程操作Excel的一種方法

MS的電子表格(Excel)是Office的重要成員,是保存統計數據的一種常用格式。作爲辦公文檔,勢必要涉及到的電子文檔的交換,Excel是一種在企業中非常通用的文件格式,打印和管理也比較方便。在一個Java應用中,將一部分數據生成Excel格式,是與其他系統無縫連接的重要手段。

  在開源世界中,有兩套比較有影響的API可供使用,一個是POI,一個是jExcelAPI.其中jExcelAPI是一個韓國程序員的作品,雖然沒有POI那樣血統高貴,但是在筆者的使用過程中,感覺簡單方便,對中文支持非常好,功能也比較強大。當前的最高版本是2.4.作者的網站上對它的特徵有如下描述:

  ● 支持Excel 95-2000的所有版本

  ● 生成Excel 2000標準格式

  ● 支持字體、數字、日期操作

  ● 能夠修飾單元格屬性

  ● 支持圖像和圖表

  應該說以上功能已經能夠大致滿足我們的需要。最關鍵的是這套API是純Java的,並不依賴Windows系統,即使運行在Linux下,它同樣能夠正確的處理Excel文件。另外需要說明的是,這套API對圖形和圖表的支持很有限,而且僅僅識別PNG格式。

  搭建環境

  將下載後的文件解包,得到jxl.jar,放入classpath,安裝就完成了。

  基本操作

  一、創建文件

  擬生成一個名爲"測試數據。xls"的Excel文件,其中第一個工作表被命名爲"第一頁",大致效果如下:

  代碼(CreateXLS.java):

  //生成Excel的類

  import java.io.*;

  import jxl.*;

  import jxl.write.*;

  public class CreateXLS

  {

  public static void main(String args[])

  {

  try

  {

  //打開文件

  WritableWorkbook book=

  Workbook.createWorkbook(new File("測試。xls"));

  //生成名爲"第一頁"的工作表,參數0表示這是第一頁

  WritableSheet sheet=book.createSheet("第一頁",0);

  //在Label對象的構造子中指名單元格位置是第一列第一行(0,0)

  //以及單元格內容爲test

  Label label=new Label(0,0,"test");

  //將定義好的單元格添加到工作表中

  sheet.addCell(label);

  /*生成一個保存數字的單元格

  必須使用Number的完整包路徑,否則有語法歧義

  單元格位置是第二列,第一行,值爲789.123*/

  jxl.write.Number number = new jxl.write.Number(1,0,789.123);

  sheet.addCell(number);

  //寫入數據並關閉文件

  book.write();

  book.close();

  }catch(Exception e)

  {

  System.out.println(e);

  }

  }

  }

  編譯執行後,會在當前位置產生一個Excel文件。

  三、讀取文件

  以剛纔我們創建的Excel文件爲例,做一個簡單的讀取操作,程序代碼如下:

  //讀取Excel的類

  import java.io.*;

  import jxl.*;

  public class ReadXLS

  {

  public static void main(String args[])

  {

  try

  {

  Workbook book=

  Workbook.getWorkbook(new File("測試。xls"));

  //獲得第一個工作表對象

  Sheet sheet=book.getSheet(0);

  //得到第一列第一行的單元格

  Cell cell1=sheet.getCell(0,0);

  String result=cell1.getContents();

  System.out.println(result);

  book.close();

  }catch(Exception e)

  {

  System.out.println(e);


 

-------------------------------------------------------------------------------------------------

移動開發者大會:Android開發者將越來越賺錢    海量Android教程、開發資料和源碼

10類最急需IT人才:Java開發者居首                   給將成爲“Android高手”的10個建議 

成爲Java高手的25個學習目標--非常經典            Android 4.1果凍豆新特性詳解 

芯片巨頭海思和展訊:給中國芯片業帶來信心     海量經典Java教程、學習資料和源碼

Java侵權訴訟Google獲勝,Android厚積薄發        面試必備:Android筆試總結 

Android高手必須掌握的28大內容和10個建議     Android平臺研發人才缺口30萬 

Android開發環境安裝和配置步驟詳細圖解         2012國內移動App開發者大調查結果 

Windows 7下搭建android開發環境步驟圖解      Android 4.0的30個突出的新特性 

Android高手要經過的6個階段和6個境界            linux下搭建Android開發環境步驟 

從IT菜鳥變爲“IT骨幹開發者”的11個建議        程序員編程技術迅速提高的終極攻略 

2012世界各國人均GDP排名,中國超泰國           2012年全國各省平均工資排行 

2012年中國大學高校排行榜(580強排名)      中國各省市面積和人口數量排名 

中國百萬開發者大調查:程序員的薪水不錯      Java高手需要越過的10座高山

周立功談嵌入式:我的25年嵌入式生涯            Android和Java語言的異同和關係 

華爲中國區手機銷量達千萬,80%爲智能機        谷歌Android碎片化嚴重

2012年中國各省GDP和人均GDP排名              90後就業“錢景”:IT仍是最佳選擇

2012全球城市競爭力500強,69箇中國城市上榜   不要做浮躁的軟件工程師 

2012年世界500強,79家大陸香港臺灣公司上榜名單  給IT新兵的15個建議 

美國知名科技公司入門級軟件工程師的薪水排名  回顧Java經過的風風雨雨 

71道經典Android面試題和答案--重要知識點都涉及到了 

高校應屆畢業生“IT業”收入最高,Android技術最熱門 

 

 

發佈了57 篇原創文章 · 獲贊 11 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章