Apache POI
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、城中網(wǎng)站維護(hù)、網(wǎng)站推廣。Apache POI 是用Java編寫的免費(fèi)開源的跨平臺(tái)的 Java API,Apache POI提供API給Java程式對(duì)Microsoft Office格式檔案讀和寫的功能。
HSSF - 提供讀寫Microsoft Excel XLS格式檔案的功能。 XSSF - 提供讀寫Microsoft Excel OOXML XLSX格式檔案的功能。 HWPF - 提供讀寫Microsoft Word DOC格式檔案的功能。 HSLF - 提供讀寫Microsoft PowerPoint格式檔案的功能。 HDGF - 提供讀Microsoft Visio格式檔案的功能。 HPBF - 提供讀Microsoft Publisher格式檔案的功能。 HSMF - 提供讀Microsoft Outlook格式檔案的功能。String filePath = "D://test.xls";
// 第一步,創(chuàng)建一個(gè)webbook,對(duì)應(yīng)一個(gè)Excel文件HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一個(gè)sheet,對(duì)應(yīng)Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("數(shù)據(jù)記錄");
// 第三步,在sheet中添加表頭第0行,注意老版本poi對(duì)Excel的行數(shù)列數(shù)有限制shortHSSFRow row = sheet.createRow((int) 0);
HSSFRow row2= sheet.createRow((int) 1);
//設(shè)置表頭字體樣式HSSFFont font= wb.createFont();
font.setFontHeightInPoints((short) 11);
font.setFontName("宋體");
font.setColor(HSSFColor.BLACK.index);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
//設(shè)置內(nèi)容字體樣式HSSFFont font2 = wb.createFont();
font2.setFontHeightInPoints((short) 11);
font2.setFontName("宋體");
font2.setColor(HSSFColor.BLACK.index);
font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
// 第四步,創(chuàng)建單元格樣式,并設(shè)置值表頭 設(shè)置表頭居中HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 創(chuàng)建一個(gè)水平居中格式style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//創(chuàng)建一個(gè)豎直居中格式style.setFont(font);
HSSFCellStyle style2= wb.createCellStyle();
style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 創(chuàng)建一個(gè)居中格式style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
style2.setFont(font2);
HSSFCell cell= row.createCell(0);
HSSFCell cell2= row2.createCell(0);
cell.setCellValue("查詢時(shí)間");
cell.setCellStyle(style);
cell2.setCellValue("");
cell2.setCellStyle(style);
cell= row.createCell(1);
cell.setCellValue("自助查詢階段");
cell.setCellStyle(style);
cell2= row2.createCell(1);
cell2.setCellValue("產(chǎn)品類型");
cell2.setCellStyle(style);
cell= row.createCell(2);
cell.setCellValue("自助查詢階段");
cell.setCellStyle(style);
cell2= row2.createCell(2);
cell2.setCellValue("產(chǎn)品型號(hào)");
cell2.setCellStyle(style);
cell= row.createCell(3);
cell.setCellValue("最后階段");
cell.setCellStyle(style);
cell2= row2.createCell(3);
cell2.setCellValue("產(chǎn)品類型");
cell2.setCellStyle(style);
for (int i = 1; i < 4; i++)
{
row= sheet.createRow((int) i+1);
row.createCell(0).setCellStyle(style2);
row.createCell(0).setCellValue("測(cè)試");
row.createCell(1).setCellValue("測(cè)試");
row.createCell(2).setCellValue("測(cè)試");
row.createCell(3).setCellValue("測(cè)試");
}
// 第六步,如果表格有需要,可以將單元格合并 行開始位置 行結(jié)束位置 列開始位置 列結(jié)束位置 sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 1, 2));
try
{
FileOutputStream fout= new FileOutputStream(filePath);
wb.write(fout);
fout.close();
}
catch (Exception e){
e.printStackTrace();
}
效果如下:
2.通過ResultSet獲取數(shù)值時(shí)注意事項(xiàng):
(1)獲取數(shù)據(jù)庫里面存儲(chǔ)的時(shí)間的話,rs.getDate("addTime") 只能獲取日期,rs.getTimestamp("addTime")可以獲取日期以及時(shí)間
(2)數(shù)據(jù)庫字段類型為int,如果數(shù)據(jù)庫內(nèi)該值是空的話,rs.getInt("faqisok")獲取到的值為0,需要修改為rs.getObject("faqisok") == null ? null : rs.getInt("faqisok")
3.request.getServletContext() getRealPath("/") request.getContextPath()三者關(guān)系:
(1)request.getServletContext() 獲取的是Servlet容器對(duì)象,相當(dāng)于tomcat容器了。
(2)request.getServletContext().getRealPath("/") 獲取實(shí)際路徑,“/”指代項(xiàng)目根目錄,所以代碼返回的是項(xiàng)目在容器中的實(shí)際發(fā)布運(yùn)行的根路徑如:
I:workspace.metadata.pluginsorg.eclipse.wst.server.core mp1wtpwebappsUMPWeb_20131230
(3)request.getContextPath()應(yīng)該是得到項(xiàng)目的名字,如果項(xiàng)目為根目錄,則得到一個(gè)"",即空的字條串,
因此,獲取項(xiàng)目鏈接可以通過以下方式:
public String getHostUrl(HttpServletRequest request) {
String hostName=request.getServerName();
Integer hostPort=request.getServerPort();
String path= request.getContextPath();
if(hostPort==80) {
return "http://"+hostName+path+"/";
}else {
return "http://"+hostName+":"+hostPort+path+"/";
}
}
4.在不存在的文件夾內(nèi)創(chuàng)建文件:
兩種方式:
方式1(錯(cuò)誤,此方法創(chuàng)建的是text.txt文件夾,將來寫入內(nèi)容的時(shí)候會(huì)保存)
String filePath = "D://testfolder//test.txt";
if(!new File(filePath).exists()){
new File(filePath).mkdirs();
}
方式2(正確,先創(chuàng)建父文件夾,然后再創(chuàng)建文件,最后寫入內(nèi)容)
String filePath = "D://testfolder";
if(!new File(filePath).exists()){
new File(filePath).mkdirs();
}
String file= filePath+"http://test.txt";
if(!new File(file).exists()){
try {
new File(file).createNewFile();
}catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
}
網(wǎng)站標(biāo)題:每日記載內(nèi)容總結(jié)39-創(chuàng)新互聯(lián)
URL地址:http://jinyejixie.com/article12/ddeidc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、App開發(fā)、營銷型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容