最近做了一些Excel的導入導出的東西,在從數據庫導出到Excel時,參考的這個博客,挺實用的,所以轉帖過來效果:使用時先把poi包導入工程的path,注意只需要導入poi包即可,下載后有三個jar包核心代碼。
POI 幫助文檔
基于poi的excel讀入和寫出_代碼直接可用_需要下載poi.jar包
第一部分 Word文檔自動追加表格內容;第二部分 java jacob 操作word 文檔,進行寫操作,如生成表格,添加 圖片
舉個例子,熟悉一下POI的各種API而已,真正要實現這樣一個表格的時候,例如項目需要制作報表等等,通常的做法都是事先把格式一切的東西都手動制作好(這個做好了的文件在實際的項目里我們稱之為“數據模板”,簡稱“模板”),然后在Java應用中適當的時機把這個文件讀進來修改,最后再另存到指定的位置或者傳遞給下一個處理者(例如以流的方式送給Servlet等等),這樣其實POI具體做的事情就是向模板里寫業務的數據,還是很方便快捷的。
在 Open XML SDK 中,SpreadsheetDocument類表示 Excel 文檔包。若要打開并使用 Excel 文檔,要基于文檔創建 SpreadsheetDocument 類的一個實例。調用 Open 方法之一。本示例代碼使用帶有需要兩個參數的簽名的 Open(String, Boolean) 方法。第一個參數采用表示要打開的文檔的完整路徑字符串。第二個參數是 true 或 false,如果此參數為true,表示是否要打開文件以進行編輯。如果此參數為 false,則不會保存對該文檔所做的任何更改。
使用Windows操作系統的朋友對Excel(電子表格)一定不會陌生,但是要使用Java語言來操縱Excel文件并不是一件容易的事。在Web應用日益盛行的今天,通過Web來操作Excel文件的需求越來越強烈,目前較為流行的操作是在JSP或Servlet 中創建一個CSV (comma separated values)文件,并將這個文件以MIME,text/csv類型返回給瀏覽器,接著瀏覽器調用Excel并且顯示CSV文件。這樣只是說可以訪問到Excel文件,但是還不能真正的操縱Excel文件,本文將向大家介紹一個開放源碼項目,Java Excel API,使用它大家就可以方便地操縱Excel文件了。
最關鍵的是這套API是純Java的,并不依賴Windows系統,即使運行在Linux下,它同樣能夠正確的處理Excel文件。另外需要說明的是,這套API對圖形和圖表的支持很有限,而且僅僅識別PNG格式。● 支持Excel 95-2000的所有版本 ● 生成Excel 2000標準格式 ● 支持字體、數字、日期操作 ● 能夠修飾單元格屬性 ● 支持圖像和圖表
在電信領域,生成報表是日常工作中必不可少的一項任務。提供報表的方式也是多種多樣,例如使用BO來生成報表,使用eclipse的插件來做報表。但是有些時候,需要我們自已來開發報表。這就是要借助于報表操作的API來完成。可以通過API直接將數據讀寫如報表文件,也可以根據模板來生成報表。<br> 根據這個需要,我研究了一下操作報表的兩種API,一種Apache的開源項目POI,POI是針對微軟OFFICE文檔的一種JAVA API,使用該API可以實現對微軟的OFFICE文檔的各種操作。其中使用最廣泛的是對MS word,excel,PPT的操作。<br> jXLS是一個專門針對excel的API,并不支持word或者是PPT。它是在POI的基礎上進一步的包裝,是一個更加優秀的開源項目。當前最新的版本是jXLS 1.0。jXLS1.0新增的特性是對excel 2007的支持。
Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能。 Apache POI 是創建和維護操作各種符合Office Open XML(OOXML)標準和微軟的OLE 2復合文檔格式(OLE2)的Java API。用它可以使用Java讀取和創建,修改MS Excel文件.而且,還可以使用Java讀取和創建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解決方案(適用于Excel97-2008)。
POI簡介 Jakarta POI 是apache的子項目,目標是處理ole2對象。它提供了一組操縱Windows文檔的Java API 目前比較成熟的是HSSF接口,處理MS Excel(97-2002)對象。它不象我們僅僅是用csv生成的沒有格式的可以由Excel轉換的東西,而是真正的Excel對象,你可以控制一些屬性如sheet,cell等等。 二.HSSF概況 HSSF 是Horrible SpreadSheet Format的縮寫,也即“討厭的電子表格格式”。 也許HSSF的名字有點滑稽,就本質而言它是一個非常嚴肅、正規的API。通過HSSF,你可以用純Java代碼來讀取、寫入、修改Excel文件。 HSSF 為讀取操作提供了兩類API:usermodel和eventusermodel,即“用戶模型”和“事件-用戶模型”。前者很好理解,后者比較抽象,但操作效率要高得多。
Excel的生成方式其實很簡單,主要包括幾個大的類首先最重要的幾個類就是WritableWorkbook,這個類代表的就是一個Excel文檔,使用過Excel文檔的都應該知道Excel文檔的組成,都是由一個一個的sheet組成的,那么這個sheet對應的java類就是WritableSheet。實際上就是這兩個大類的組成,其他的一些小的類都是為了修飾WritableSheet里的內容的。這些修飾類中用的最多的就是WritableFont,WritableCellFormat,以及Label類,這三個類構成了修WritableSheet的核心。
java jacob操作word文檔,進行寫操作,如生成表格,添加圖片。
在Java處理Excel這個領域已經有很多開源的解決方案,目前在這方面做得比較出色的有ApachePOI和JExcelApi(jxl)。<br> ApachePOI是Apache基金組織Jakarta項目的子項目。POI包括一系列的API,可以操作多種格式的Microsoft Office文件,通過這些API可以在Java中很方便地讀寫Excel、Word等文件。POI是比較完整的Java Excel和Java Word解決方案。其子項目包括:POIFS、HSSF、HDF、HPSF。其中HSSF是Java到Microsoft Excel97/2002文件的接口,支持讀寫功能。 JExcelApi也是一個Java操作Excel的接口。它也是一個開源的解決方案,雖然在名氣方面比不上大名鼎鼎的ApachePOI,但是在操作Excel的功能上絲毫不比POI遜色,而且在某些方面做得比POI更出色,例如生成Excel文件時給合并單元格加邊框的問題,在POI中這很難實現的,POI的官方僅僅承諾在以后的版本中會添加這個功能。然而在JExceApi中通過一個簡單的設置語句就可以實現。而且總體上JExcelApi使用都是比較簡單方便的。
POI簡介JakartaPOI是apache的子項目,目標是處理ole2對象。它提供了一組操縱Windows文檔的JavaAPI目前比較成熟的是HSSF接口,處理MSExcel(97-2003對象。它不象我們僅僅是用csv生成的沒有格式的可以由Excel轉換的東西,而是真正的Excel對象,你可以控制一些屬性如sheet,cell等等。HSSF概況HSSF是HorribleSpreadSheetFormat的縮寫,通過HSSF,你可以用純Java代碼來讀取、寫入、修改Excel文件。
Jacob是Java-COMBridge的縮寫,它在Java與微軟的COM組件之間構建一座橋梁。使用Jacob自帶的DLL動態鏈接庫,并通過JNI的方式實現了在Java平臺上對COM程序的調用。DLL動態鏈接庫的生成需要windows平臺的支持。Apache POI包括一系列的API,它們可以操作基于MicroSoft OLE2 Compound Document Format的各種格式文件,可以通過這些API在Java中讀寫Excel、Word等文件。
C#讀excel寫入數據庫
我們介紹了POI項目的基本概念,了解了如何用POI來讀寫OLE 2復合文檔結構,并給出了兩個簡單的例子:用POI來讀寫Excel文件的Workbook流。本文繼續前文的話題,闡述如何用POI來讀取/寫入完整的 Excel文件。
我們操縱Word需要通過類型庫中的MFC類。而這些類,應該都是基于一個叫COleDispatchDriver的類。至少我所了解到的都是這樣。
一個jacob操作Word的例子,其他操作excel,pdf的sample里都有。