java中導(dǎo)入導(dǎo)出Excel文件_第1頁(yè)
java中導(dǎo)入導(dǎo)出Excel文件_第2頁(yè)
java中導(dǎo)入導(dǎo)出Excel文件_第3頁(yè)
java中導(dǎo)入導(dǎo)出Excel文件_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、java 中導(dǎo)入導(dǎo)出 Excel 文件一.POI簡(jiǎn)介JakartaPOI 是 apache 的子項(xiàng)目,目標(biāo)是處理 ole2 對(duì)象。它提供了一組操縱 Windows 文檔的JavaAPI目前比較成熟的是 HSSF 接口,處理 MSExcel(97-2002)對(duì)象。它不象我們僅僅是用 csv 生成的沒(méi)有格式的可以由 Excel 轉(zhuǎn)換的東西,而是真正的 Excel 對(duì)象,你可以控制一些屬性如 sheet,cell 等等。二.HSSF 概況HSSF 是 sHorribleSpreadSheetFormat 的縮寫(xiě),也即“討厭的電子表格格式“。也許 HSSF 的名字有點(diǎn)滑稽,就本質(zhì)而言它是一個(gè)非常嚴(yán)肅、

2、正規(guī)的 API。通過(guò) HSSF,你可以用純 Java代碼來(lái)讀取、寫(xiě)入、修改 Excel 文件。HSSF 為讀取操作提供了兩類(lèi) API:usermodel 和 eventusermodel,即用戶模型和“事件-用戶模型”。前者很好理解,后者比較抽象,但操作效率要高得多。三.開(kāi)始編碼1 .準(zhǔn)備工作要求:JDK1.4+POI 開(kāi)發(fā)包可以至 U/dyn/closer.cgi/jakarta/poi/最新的 POI 工具包2 .EXCEL 結(jié)構(gòu)HSSFWorkbookexcel 文檔對(duì)象介紹HSSFSheetexcel 的表單HSSFRowexcel 的行HSSF

3、Cellexcel 的格子單元HSSFFontexcel 字體HSSFName 名稱HSSFDataFormat 日期格式HSSFHeadersheet 頭HSSFFootersheet 尾和這個(gè)樣式HSSFCellStylecell 樣式輔助操作包括HSSFDateUtil 日期HSSFPrintSetup 打印HSSFErrorConstants 錯(cuò)誤信息表4 .可參考文檔POI 主頁(yè):/poi/,初學(xué)者如何快速上手使用 POIHSSF/poi/hssf/quick-guide.html。代碼例

4、子http:/blog.java- 的 usermodel 包把 Excel 文件映射成我們熟悉的結(jié)構(gòu),諸如 WorkbookSheet、Row、Cell 等,它把整個(gè)結(jié)構(gòu)以一組對(duì)象的形式保存在內(nèi)存之中,便于理解,操作方便,基本上能夠滿足我們的要求,所以說(shuō)這個(gè)一個(gè)不錯(cuò)的選擇。1.創(chuàng)建工作簿(WORKBOOK)Java 代碼packageExcel2003;importjava.io.FileOutputStream;importjava.io.IOException;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.apach

5、e.poi.ss.usermodel.*;/* Tochangethistemplate,chooseTools|Templatesandopenthetemplatein* theeditor.* /* 本文檔用來(lái)學(xué)習(xí) POI 即使用 java 導(dǎo)入導(dǎo)出 excel 表格,創(chuàng)建數(shù)據(jù)表* authorsingle* /publicclassExcel2003_poi_creat/*paramargsthecommandlinearguments*/publicstaticvoidmain(String 口 args)/Excel2003 文檔的創(chuàng)建,即擴(kuò)展名為.xlstry/創(chuàng)建一個(gè)工作簿W(wǎng)o

6、rkbookwb=newHSSFWorkbook();CreationHelpercreateHelper=wb.getCreationHelper();/創(chuàng)建兩個(gè)工作表,sheet1 和sheet2Sheetsheet1=wb.createSheet(sheet1);Sheetsheet2=wb.createSheet(sheet2);/在 Excel 工作表中插入一行數(shù)據(jù)Rowrow=sheet1.createRow(short)0);/此處數(shù)字為在第幾行插入數(shù)據(jù),0 表示工作表第 1 行,1 表示第 2 行,以此類(lèi)推/Createacellandputavalueinit.創(chuàng)建一個(gè)單元并

7、把數(shù)據(jù)寫(xiě)入,0 表示第 N 行第 1 個(gè)單元格,1 表示第 N 行第 2個(gè)單元格Cellcell=row.createCell(0);/此處為單元序號(hào)cell.setCellValue(001);/此處為數(shù)據(jù)/Ordoitononeline./你也可以用一行代碼來(lái)寫(xiě)入數(shù)據(jù)row.createCell(1).setCellValue(1.2);/createCell(1)表示在第 2 個(gè)單元格寫(xiě)入,setCellValue(1.2)表示寫(xiě)入數(shù)據(jù) 1.2row.createCell(2).setCellValue(createHelper.createRichTextString(這就是我);ro

8、w.createCell(3).setCellValue(true);/創(chuàng)建文件try(FileOutputStreamfileOut=newFileOutputStream(e:/workbook.xls)wb.write(fileOut);fileOut.close();catch(IOExceptione)/* Tochangethistemplate,chooseTools|Templates* andopenthetemplateintheeditor.*/packageExcel2003;importjava.io.FileInputStream;importjava.io.Fil

9、eNotFoundException;importjava.io.IOException;importjava.util.Iterator;importjava.util.logging.Level;importjava.util.logging.Logger;importorg.apache.poi.hssf.extractor.ExcelExtractor;importorg.apache.poi.hssf.usermodel.HSSFWorkbook;importorg.apache.poi.poifs.filesystem.POIFSFileSystem;importorg.apach

10、e.poi.ss.usermodel.*;/* authorsingle*/publicclassExcel2003_poi_read/*paramargsthecommandlinearguments*/publicstaticvoidmain(Stringargs)try/讀取要導(dǎo)出的 excel 文件POIFSFileSystemfs=newPOIFSFileSystem(newFileInputStream(e:/test.xls);HSSFWorkbookwb=newHSSFWorkbook(fs);ExcelExtractorextractor=newExcelExtractor(

11、wb);extractor.setFormulasNotResults(false);extractor.setIncludeSheetNames(false);/工作表的序號(hào)Sheetsheet1=(Sheet)wb.getSheetAt(0);/開(kāi)始遍歷整個(gè)工作表/*for(Iteratorit=sheet1.rowIterator();it.hasNext();)Rowrow=(Row)it.next();for(Iteratorcit=row.cellIterator();cit.hasNext();)/輸出數(shù)據(jù)if(cit.next().getCellType()=Cell.CELL_TYPE_FORMULA)Cellcell=cit.next();FormulaEvaluatorevaluator=wb.getCreationHelper().createFormulaEvaluator();/把公式行的數(shù)據(jù)計(jì)算出來(lái)CellValuecellValue=evaluator.evaluate(cell);System.out.println(cellValue.toString()+,);elseSystem.out.print(cit.next().toString()+,);*/catch(FileNotFound

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論