城市獵人
在一網情深的日子里,誰能說得清是苦是甜,只知道確定了就義無反顧
posts - 1, comments - 7, trackbacks - 0, articles - 89
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(3)
給我留言
查看公開留言
查看私人留言
文章分類
(90)
AJAX-DWR/EXT/JQUERY(1)
EJB3(5)
Glassfish(2)
Hibernate(1)
ibatis(2)
java(12)
javascript(4)
linux(3)
mysql(1)
oracle(28)
others
PowerDesigner(1)
Solaris(2)
spring(5)
struts(2)
struts2(2)
weblogic(1)
分錄(2)
心得體會(1)
模式(12)
網絡筆試題集(1)
錯誤集(1)
錘煉(1)
文章檔案
(90)
2012年8月 (1)
2011年12月 (1)
2011年11月 (1)
2011年8月 (2)
2011年3月 (1)
2010年6月 (1)
2009年9月 (1)
2009年8月 (4)
2009年7月 (2)
2009年6月 (1)
2009年4月 (5)
2009年3月 (3)
2009年1月 (2)
2008年12月 (8)
2008年11月 (5)
2008年10月 (7)
2008年9月 (3)
2008年8月 (6)
2008年7月 (33)
2008年5月 (3)
收藏夾
(12)
Ext
Hibernate
Ibatis(2)
J2EE(1)
J2SE(4)
Jquery
Mysql
Oracle(1)
Spring
strtus
Struts2(3)
Weblogic
下載地址(1)
設計模式
軟件工程
搜索
最新評論
1.?re: AOP之靜態代理和動態代理
@AloneAli不好意思,弄錯了。代理模式是種模式。。。不是裝飾者模式。
--AloneAli
2.?re: AOP之靜態代理和動態代理
實質就是裝飾者模式?
--AloneAli
3.?re: struts與jquery整合[未登錄]
學習下!
--力
4.?re: struts與jquery整合
很好,很強大,謝謝了
--f
5.?re: struts與jquery整合
thanks
--ami
利用OPI讀取Excle文件
Posted on 2009-09-02 13:44
sailor
閱讀(587)
評論(0)
編輯
收藏
所屬分類:
java
1、讀取文件
/** */
/**
* 導入方法
*
@param
request
*
@return
*
@throws
Exception
*/
public
Message importCubage(HttpServletRequest request)
throws
Exception
{
Message message
=
MessageFactory.getMessage();
ServletContext context
=
getServletContext();
UploadListener listener
=
new
UploadListener(request,
30
);
//
Create a factory for disk-based file items
FileItemFactory factory
=
new
MonitoredDiskFileItemFactory(listener);
//
Create a new file upload handler
ServletFileUpload upload
=
new
ServletFileUpload(factory);
try
{
List items
=
upload.parseRequest(request);
UserSession userSession
=
UserSession.getUserSession(request
.getSession());
for
(
int
i
=
0
; i
<
items.size(); i
++
)
{
FileItem fileItem
=
(FileItem) items.get(i);
if
(
!
fileItem.isFormField())
{
InputStream inputstream
=
fileItem.getInputStream();
//
讀取excle文件
this
.getVolumeCorrenctionFactorService().saveExcleWorkBook(inputstream, userSession);
message.addMessage(MessageUtils.operateSuccess());
}
}
return
message;
}
catch
(FileUploadException e)
{
throw
new
FileUploadException(e.getMessage());
}
}
2、讀取ExcleWorkBook
/** */
/**
* 讀取Excle
*
@param
is
*/
public
void
saveExcleWorkBook(InputStream is, UserSession userSession)
{
Message message
=
MessageFactory.getMessage();
//
通過得到的文件輸入流inputstream創建一個HSSFWordbook對象
try
{
HSSFWorkbook hssfworkbook
=
new
HSSFWorkbook(is);
HSSFSheet hssfsheet
=
null
;
for
(
int
i
=
0
; i
<
hssfworkbook.getNumberOfSheets(); i
++
)
{
hssfsheet
=
hssfworkbook.getSheetAt(i);
this
.readExcleSheet(hssfsheet, userSession);
}
}
catch
(IOException e)
{
e.printStackTrace();
message.addMessage(
"
讀取Excle文件失敗!
"
);
}
}
3、解析Excle
/** */
/**
* 讀取Sheet數據
*
@param
hssfsheet
*/
private
void
readExcleSheet(HSSFSheet hssfsheet, UserSession userSession)
{
//
定義Sheet行
HSSFRow rows
=
null
;
//
定義列
HSSFCell cell
=
null
;
Double firstColumn;
Double firstRow;
List list
=
new
ArrayList();
VolumeCorrenctionFactorVO vo
=
null
;
//
遍歷該行所有的行,i表示行數 getPhysicalNumberOfRows行的總數
for
(
int
i
=
1
; i
<
hssfsheet.getPhysicalNumberOfRows(); i
++
)
{
rows
=
hssfsheet.getRow(i);
//
獲取第i行,第0列的值
if
(rows.getCell((
short
)
0
).getCellType()
==
HSSFCell.CELL_TYPE_NUMERIC)
{
firstColumn
=
rows.getCell((
short
)
0
).getNumericCellValue();
}
else
{
throw
new
BusinessException(
"
Excle第
"
+
(i
+
1
)
+
"
行,第
"
+
"
1列不是有效數字
"
);
}
//
獲取第i行,第j列的值
for
(
short
j
=
1
; j
<
hssfsheet.getRow(
0
).getLastCellNum(); j
++
)
{
//
獲取第0行,第j列的值
if
(hssfsheet.getRow(
0
).getCell(j).getCellType()
==
HSSFCell.CELL_TYPE_NUMERIC)
{
firstRow
=
hssfsheet.getRow(
0
).getCell(j).getNumericCellValue();
}
else
{
throw
new
BusinessException(
"
Excle第1行,第
"
+
(j
+
1
)
+
"
列不是有效數字
"
);
}
//
獲取第i行,第j個單元格
cell
=
rows.getCell(j);
//
判斷是否是數字
if
(
null
==
cell
||
cell.getCellType()
==
HSSFCell.CELL_TYPE_NUMERIC)
{
vo
=
new
VolumeCorrenctionFactorVO();
vo.setDensity(firstRow);
vo.setTemprature(firstColumn);
if
(
null
!=
cell)
{
Double cellContent
=
cell.getNumericCellValue();
vo.setVolumeFactor(cellContent);
}
list.add(vo);
}
else
{
throw
new
BusinessException(
"
Excle第
"
+
(i
+
1
)
+
"
行,第
"
+
(j
+
1
)
+
"
列不是有效數字
"
);
}
}
}
if
(list.size()
>
0
)
{
//
構建批量插入SQL
String sql
=
this
.buildSQL(list,userSession);
//
執行一次性插入多條SQL語句
this
.volumeCorrenctionFactorDAO.getSqlExecutor().exectue(sql,
null
);
}
}
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
利用OPI讀取Excle文件
DWR 的 Converter 實現原理簡單分析及應用
參考資料
Servlet總結
BeanUtils日期轉換
兩種Date
Javarebel使用
java資源鏈接
cvs相關工具下載地址
正則表達式總結
Powered by:
BlogJava
Copyright © sailor
主站蜘蛛池模板:
无码乱肉视频免费大全合集
|
一区二区视频免费观看
|
日本免费网站视频www区
|
亚洲人成网站在线播放影院在线
|
一区二区免费电影
|
亚洲人成精品久久久久
|
国产一精品一AV一免费
|
亚洲产国偷V产偷V自拍色戒
|
精品视频在线免费观看
|
91亚洲一区二区在线观看不卡
|
日韩免费电影网址
|
亚洲精品在线电影
|
特级做A爰片毛片免费69
|
WWW亚洲色大成网络.COM
|
2021精品国产品免费观看
|
亚洲黄色在线播放
|
在线观看视频免费完整版
|
亚洲AV一区二区三区四区
|
xvideos亚洲永久网址
|
中文字幕免费观看视频
|
亚洲VA成无码人在线观看天堂
|
1000部国产成人免费视频
|
亚洲中文字幕乱码熟女在线
|
国产成人涩涩涩视频在线观看免费
|
日韩毛片免费一二三
|
亚洲av无码国产精品色午夜字幕
|
亚洲中久无码不卡永久在线观看
|
国产精品hd免费观看
|
久久久久亚洲精品无码蜜桃
|
精品久久久久久久久免费影院
|
色欲aⅴ亚洲情无码AV蜜桃
|
国产亚洲AV手机在线观看
|
国产精品免费观看
|
色www免费视频
|
久久精品国产96精品亚洲
|
最近免费中文字幕大全视频
|
国产成人无码区免费网站
|
亚洲一区中文字幕在线观看
|
亚洲国产成人a精品不卡在线
|
亚洲免费在线视频
|
羞羞网站免费观看
|