日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ssh excel 导入 mysql_ssh poi解析excel并将数据存入数据库

發(fā)布時(shí)間:2024/1/23 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssh excel 导入 mysql_ssh poi解析excel并将数据存入数据库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

做完了一個(gè)報(bào)表導(dǎo)入數(shù)據(jù)庫?功能?遇到幾個(gè)問題:一?、Poi解析excel?的兩種格式?xls?xlsx.?二、form表單上傳使用ajax

三、excel?單元格中有公式存在普通的讀取方式讀到的是公式不是數(shù)據(jù)

1.[代碼]先從上傳文件開始,最開始是套用項(xiàng)目中一直在用的validform

$(function() {

//ajax初始化 Validform 表單按鈕

$("#formobj").Validform({

tiptype : 4,

btnSubmit : "#btn_sub",

btnReset : "#btn_reset",

ajaxPost : false,//ajaxpost 是true的時(shí)候死活不能提交到后臺(tái)去

//為了實(shí)現(xiàn)功能只能,只能將就一下 但是問題也很嚴(yán)重,這里返回的值是

// 當(dāng)前form的對(duì)象,所以不管我后臺(tái)是什么情況前臺(tái)都會(huì)提示 上傳成功

callback: function (data){

var win = frameElement.api.opener;

if (data) {

win.tip("上傳成功!");

frameElement.api.hide();

//win.reloadTable(data);

}

win.parentLoad();

}

});

});

具體的validform可以百度下看看它的說明文檔

2.[代碼]ajax上傳

//上面說到 validform ajaxPost為false時(shí)form表單才能提交相對(duì)的 返回的數(shù)據(jù)是form的對(duì)象,實(shí)際上不能滿足我//的要求。所以功能實(shí)現(xiàn)之后 改!

//想到 html5 是有 FormData 的 于是

文件名稱:

選擇文件:

function ajsave(){

var formData = new FormData($( "#ajform" )[0]);

$.ajax({

url: path+"reportForUrlController/saveOrUpdata" ,

type: 'POST',

data:formData,

async: false,

cache: false,

contentType: false,

processData: false,

success: function (data) {

var win = frameElement.api.opener;

if(data.success==true){

win.tip(data.msg);

frameElement.api.close();

win.parentLoad();

}else{

$.messager.alert('提示',data.msg);

}

}

});

}

//到了這里想著后臺(tái)處理基本什么情況前臺(tái)都能告訴用戶上傳的狀態(tài)并且能正常上傳了。

//實(shí)際上確實(shí)能滿足業(yè)務(wù)需求了

//測試發(fā)現(xiàn)問題了!IE10以下還是不能提交表單 FormData 不支持IE10以下的版本!

3.[代碼]ajaxFileUpload

//這很煩啊,本人一般都用火狐 谷歌之類的很少用到ie但是用戶不一定就不用ie啊

//于是 繼續(xù)改!

//引入 js

function ajsave(){

$("#ajform").ajaxSubmit({

dataType: 'json',

contentType: "application/json; charset=utf-8",

success : function (data, status){

var win = frameElement.api.opener;

if(data.success){

win.tip(data.msg);

frameElement.api.close();

win.parentLoad();

}else{

$.messager.alert('提示',data.msg);

}

}

});

}

//測試之后發(fā)現(xiàn)都可以了

//于是皆大歡喜 前臺(tái)搞定之后 該搞后臺(tái)了

//這種形式傳輸?shù)膄ile 是 multipart/form-data 記得在 form 中添加屬性

4.[代碼]poi解析(包括解析單元格公式)

//在代碼之前我一直在考慮怎么得到路徑然后 通過路徑去解析(本人對(duì)與上傳功能并不熟悉)

//后來才發(fā)現(xiàn)我傳到后臺(tái)的file 它本身就是一個(gè)流... 于是皆大歡喜......

@RequestMapping(value = "/addorupdate" ,method = RequestMethod.POST)

@ResponseBody

public AjaxJson addorupdate(HttpServletRequest req,

@RequestParam(value = "file", required = false) MultipartFile file,

@RequestParam(value = "fileName", required = true) String FileName )

throws Exception {

AjaxJson j = new AjaxJson();

InputStream is = file.getInputStream();

String isName = file.getOriginalFilename();

//直接將excel 按后綴不同轉(zhuǎn)成workbook格式的數(shù)據(jù)

String type = isName.substring(isName.lastIndexOf(".")+1);

Workbook book =null;

if(type.equals("xls")){

book = new HSSFWorkbook(is);

}else if(type.equals("xlsx")){

book = new XSSFWorkbook(is);

}

Sheet sheet = book.getSheetAt(0);

Row row = null;

for (int i = 1; sheet.getRow(i)!=null; i++) {

row = sheet.getRow(i);

for (int j = 0;row.getCell(j)!=null; j++) {

........

}

}

}

//之后的解析就不詳細(xì)介紹了

//最后在excel的單元格是公式的情況下 使用 //String.valueOf(row.getCell(j).getNumericCellValue());

//就能獲取到值了,

以上 form提交excel poi解析并存庫完成

總結(jié)

以上是生活随笔為你收集整理的ssh excel 导入 mysql_ssh poi解析excel并将数据存入数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。