城市獵人
在一網情深的日子里,誰能說得清是苦是甜,只知道確定了就義無反顧
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
主站蜘蛛池模板:
国产精品亚洲一区二区在线观看
|
日本一区二区在线免费观看
|
久久精品国产亚洲av高清漫画
|
久久国产高潮流白浆免费观看
|
亚洲中文无码永久免
|
亚洲综合色视频在线观看
|
最近中文字幕mv免费高清在线
|
亚洲欧美乱色情图片
|
久久精品国产精品亚洲艾
|
免费观看一级毛片
|
成人黄网站片免费视频
|
亚洲欧洲国产综合AV无码久久
|
亚洲中文字幕无码中文字在线
|
一个人免费观看www视频在线
|
色多多免费视频观看区一区
|
亚洲欧洲日产国产综合网
|
免费A级毛片无码久久版
|
9420免费高清在线视频
|
国产成人亚洲精品播放器下载
|
亚洲第一极品精品无码久久
|
女性自慰aⅴ片高清免费
|
永久免费av无码入口国语片
|
亚洲AV永久无码精品网站在线观看
|
亚洲av无码专区国产乱码在线观看
|
全免费a级毛片免费**视频
|
99视频在线免费看
|
一区二区三区免费在线观看
|
亚洲娇小性xxxx色
|
久久久无码精品亚洲日韩蜜臀浪潮
|
亚洲?v无码国产在丝袜线观看
|
曰批视频免费40分钟试看天天
|
青青免费在线视频
|
亚洲国产精品综合久久久
|
蜜臀亚洲AV无码精品国产午夜.
|
亚洲AV无码不卡在线播放
|
免费人妻av无码专区
|
免费无码肉片在线观看
|
免费91最新地址永久入口
|
毛片免费观看网站
|
久久aa毛片免费播放嗯啊
|
又长又大又粗又硬3p免费视频
|