




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Java實(shí)用技術(shù)第九章掌握文件上傳掌握使用Java操作Excel目標(biāo)在客戶的應(yīng)用中,常常有這樣的需求:你要把我的文件、圖片上傳到網(wǎng)絡(luò)上、你要把我們的報(bào)表直接用Excel打開等。概述使用ApacheCommonsFileUpload文件上傳組件需要兩個(gè)類庫文件:commons-fileupload.jarcommons-io.jarCommonsFileUpload簡介要想得到這兩個(gè)類庫文件,可以進(jìn)入Apache官方網(wǎng)站的commons-fileupload網(wǎng)頁下載:/fileupload/
CommonsFileUpload簡介CommonsFileUpload簡介commons-fileupload目錄結(jié)構(gòu)如下:CommonsFileUpload簡介commons-fileupload-1.2.2:根目錄lib:類庫目錄site:包括CommonsFileupload組件站點(diǎn)所有頁面文件apidocs:API文檔目錄,API文檔鏈接可以在下面的首頁中找到,也可以直接打開此目錄,點(diǎn)擊index.html打開API文檔CommonsFileUpload簡介FileUpload是基于CommonsIO的,所以在項(xiàng)目開發(fā)前先確定CommonsIO的jar包在瀏覽器中輸入/io/download_io.cgi,仿照下載FileUpload的方式將IO的組件也下載下來。CommonsFileUpload簡介ServletFileUpload類publicvoidsetSizeMax(long
sizeMax)publicList
parseRequest(HttpServletRequest
req)throwsFileUploadExceptionpublicstaticbooleanisMultipartContent(HttpServletRequest
req)主要對(duì)象方法DiskFileItemFactorypublicDiskFileItemFactory()publicvoidsetSizeThreshold(int
sizeThreshold)publicvoidsetRepository(File
repository)主要對(duì)象方法FileItem接口publicboolean
isFormField()publicStringgetName()publicStringgetFieldName()publicvoidwrite(File
file)publicjava.lang.StringgetString()publicStringgetContentType()publicvoiddelete()主要對(duì)象方法FileUploadException類
在文件上傳過程中,可能發(fā)生各種各樣的異常,例如網(wǎng)絡(luò)中斷、數(shù)據(jù)丟失等等。FileUp
loadException是其他異常類的父類,其他幾個(gè)類只是被間接調(diào)用的底層類,對(duì)于Apache組件調(diào)用人員來說,只需對(duì)FileUploadException異常類進(jìn)行捕獲和處理即可。
主要對(duì)象方法CommonsFileUpload上傳文件創(chuàng)建表單頁面submit.jsp,提交上傳請(qǐng)求創(chuàng)建上傳文件頁面fileUpload.jsp,上傳文件到指定的目錄,并限定大小CommonsFileUpload使用創(chuàng)建表單頁面submit.jsp,將form表單的enctype屬性設(shè)置為"multipart/form-data",method屬性設(shè)置為"post"。CommonsFileUpload使用<%@pagelanguage="java"import="java.util.*
pageEncoding="gb2312"%><html> <head> <title>表單頁面</title> </head> <body> <formname="myform"action="fileUpload.jsp"method="post" enctype="multipart/form-data">
名稱:<inputtype="text"name="name"><br>文件:<inputtype="file"name="myfile"><br> <inputtype="submit"name="submit"value="提交">
</form> </body></html>CommonsFileUpload使用CommonsFileUpload使用fileUpload.jsp中使用ServletFileUpload靜態(tài)類來解析request,工廠類DiskFileItemFactory會(huì)對(duì)mulipart類的表單中的所有字段進(jìn)行處理,不只是file字段//創(chuàng)建文件工廠DiskFileItemFactoryfactory=newDiskFileItemFactory();factory.setSizeThreshold(4096);//設(shè)置緩沖區(qū)大小,這里是4KBfactory.setRepository(tempFilePath);//設(shè)置緩沖區(qū)目錄CommonsFileUpload使用//創(chuàng)建上傳文件操作對(duì)象ServletFileUploadupload=newServletFileUpload(factory);//限定上傳文件大小upload.setSizeMax(4194304);//設(shè)置最大文件尺寸,這里是4MB//得到所有的請(qǐng)求上傳文件List<FileItem>items=upload.parseRequest(request);CommonsFileUpload使用在企業(yè)辦公系統(tǒng)中,常常有客戶要求這樣:你要把我們的報(bào)表直接用Excel打開(電信系統(tǒng)、銀行系統(tǒng)等),那么Java里面有沒有操作Excel的組件呢?POI與Excel交互答案是肯定的,下面我來就來介紹一下POI。Apache的Jakata項(xiàng)目的POI子項(xiàng)目,目前比較成熟的是HSSF接口,處理MSExcel對(duì)象。它可以生成真正的Excel對(duì)象,你可以控制一些屬性如sheet,cell等等。POI與Excel交互POI項(xiàng)目實(shí)現(xiàn)的Excel97文件格式稱為HSSF、HSSF為讀取操作提供了兩類API:
usermodel:“用戶模型”
eventusermodel:“事件-用戶模型”主要對(duì)象介紹對(duì)象作用HSSFWorkbookexcel的文檔對(duì)象HSSFSheetexcel的表單HSSFRowexcel的行HSSFCellexcel的單元格HSSFFontexcel字體HSSFDataFormat日期格式HSSFCellStylecell樣式主要對(duì)象介紹創(chuàng)建一個(gè)HSSFWorkbook實(shí)例,然后創(chuàng)建一個(gè)把文件寫入磁盤的OutputStream,延遲到處理結(jié)束時(shí)創(chuàng)建OutputStream也可以:HSSFWorkbook
wb=newHSSFWorkbook();
FileOutputStream
fileOut=newFileOutputStream(StringfileName);
wb.write(fileOut);
fileOut.close();創(chuàng)建Excel文件
有了HSSFWorkbook對(duì)象后,我們就可以在工作簿上創(chuàng)建工作表,行列及單元格了:創(chuàng)建Excel文件HSSFSheetsheet=wb.createSheet();//在工作簿上創(chuàng)建工作表
HSSFRowrow
=sheet.createRow(0);
//在索引0的位置創(chuàng)建行(最頂端的行)
HSSFCellcell=row.createCell(0);
//在索引0的位置創(chuàng)建單元格
cell.setCellValue(1);
//設(shè)置單元格的值
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue("一個(gè)字符串");
row.createCell(3).setCellValue(true);創(chuàng)建Excel文件
如果要設(shè)置單元格的樣式,首先要?jiǎng)?chuàng)建一個(gè)樣式對(duì)象,然后讓單元格引用這個(gè)樣式對(duì)象://創(chuàng)建字體,紅色、粗體HSSFFontfont=workbook.createFont();font.setColor(HSSFFont.COLOR_RED);font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//創(chuàng)建單元格的格式,如居中、左對(duì)齊等HSSFCellStyle
cellStyle=workbook.createCellStyle();//水平方向上居中對(duì)齊cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//垂直方向上居中對(duì)齊cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//設(shè)置字體cellStyle.setFont(font);//為單元格設(shè)置格式cell.setCellStyle(cellStyle);創(chuàng)建Excel文件實(shí)例:創(chuàng)建出一個(gè)存儲(chǔ)學(xué)生成績的Excel表格。創(chuàng)建Excel文件用HSSF的usermodel讀取文件很簡單。首先創(chuàng)建一個(gè)InputStream,然后創(chuàng)建一個(gè)HSSFWorkbook實(shí)例:
InputStream
myxls=newFileInputStream(StringfileName);
HSSFWorkbook
wb
=newHSSFWorkbook(myxls);讀取Excel文件有了HSSFWorkbook實(shí)例,接下來就可以提取工作表、工作表的行和列,例如:
HSSFSheetsheet=wb.getSheetAt(0);
//
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 園林建設(shè)專項(xiàng)施工方案
- 2024年廣東省中考滿分作文《當(dāng)好自己故事的主角》3
- 合作商超協(xié)議合同范本
- 胃造口術(shù)后護(hù)理
- 農(nóng)莊永久出售合同范例
- 交運(yùn)股合同范例
- 制定高效的日常生產(chǎn)計(jì)劃
- 加強(qiáng)知識(shí)管理的有效方式計(jì)劃
- 品牌數(shù)字化轉(zhuǎn)型的路徑與挑戰(zhàn)計(jì)劃
- 項(xiàng)目管理的最佳實(shí)踐計(jì)劃
- HYT 0332-2022 海洋大數(shù)據(jù)標(biāo)準(zhǔn)體系(正式版)
- 全新供土協(xié)議
- 發(fā)電機(jī)組檢修方案技術(shù)指導(dǎo)
- 第2課《讓美德照亮幸福人生》第2框《做守家庭美德的好成員》-【中職專用】《職業(yè)道德與法治》同步課堂課件
- 條件概率與全概率公式高二下學(xué)期數(shù)學(xué)人教A版(2019)選擇性必修第三冊(cè)
- (正式版)JBT 10437-2024 電線電纜用可交聯(lián)聚乙烯絕緣料
- 法律知識(shí)圖譜構(gòu)建及應(yīng)用
- 八卦的基本介紹及其科學(xué)內(nèi)涵
- 內(nèi)科護(hù)理學(xué)慢性腎衰竭
- (建筑制圖)課程綜合自測(cè)題3(試卷和答案)
- 公司商業(yè)模式策劃案關(guān)鍵合作伙伴
評(píng)論
0/150
提交評(píng)論