Java用jxl讀取excel并保存到數(shù)據(jù)庫(kù)的方法
項(xiàng)目中涉及到讀取excel中的數(shù)據(jù),保存到數(shù)據(jù)庫(kù)中,用jxl做起來(lái)比較簡(jiǎn)單。
基本的思路:
把excel放到固定盤(pán)里,然后前段頁(yè)面選擇文件,把文件的名字傳到后臺(tái),再利用jxl進(jìn)行數(shù)據(jù)讀取,把讀取到的數(shù)據(jù)存到list中,通過(guò)遍歷list,得到map,存到數(shù)據(jù)庫(kù)中。
首先導(dǎo)入jar包:在網(wǎng)上都有,
代碼:
頁(yè)面:
新模excel導(dǎo)入
<input type="file" name="excel" id="xinmu">
<input type="button" id="newmj" value="導(dǎo)入">
js
//通過(guò)ajax進(jìn)行操作 $(function(){ $("#newmj").click(function(){ alert("haha"); $.ajax({ url:'${pageContext.request.contextPath}/UploadExcelServlet?type=xinmu&filename='+$("#xinmu").val(), type:'get', success:function(result){ //alert("haha"); alert(result); var json= eval('(' + result + ')'); } }) }) });
servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //request.setCharacterEncoding("utf-8"); System.out.println("jinru"); String type=request.getParameter("type"); String filename=request.getParameter("filename"); //System.out.println(filename); File file = new File("D:\\"+filename);// 表格存儲(chǔ)的位置 JSONObject jsonObject = new JSONObject(); //記錄一下文件是否存在 if (file.exists()) { jsonObject.put("exist", "文件存在"); List<Map<String, String>>list=ReadExcel.readExcel(file); MuJUService mjService = new MuJUService(); for (Map<String, String> map : list) { jsonObject = mjService.addNewMuJu(map); } } else { jsonObject.put("exist", "文件不存在"); System.out.println("文件不存在"); } }
jxl處理類(lèi)
import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; public class ReadExcel { public static List<Map<String,String>> readExcel(File file){ List<Map<String, String>>list =new ArrayList<Map<String,String>>(); try { // 判斷文件是否存在 // 創(chuàng)建工作簿 Workbook workbook = Workbook.getWorkbook(file); // 獲得第一個(gè)工作表sheet1 Sheet sheet = workbook.getSheet(0); // 獲得數(shù)據(jù) for (int i = 1; i < sheet.getRows(); i++) {// sheet.getRows():獲得表格文件行數(shù) Map<String, String>map = new HashMap<String, String>(); for (int j = 0; j < sheet.getColumns(); j++) {// sheet.getColumns():獲得表格文件列數(shù) Cell cell = sheet.getCell(j, i); // System.out.print(cell.getContents() + " "); map.put(sheet.getCell(j,0).getContents(), cell.getContents()); //(列,行) } //System.out.println("");// 換行 list.add(map); } //調(diào)用方法進(jìn)行數(shù)據(jù)庫(kù)的操作 //....... System.out.println(list); workbook.close();// 關(guān)閉 } catch (Exception e) { e.printStackTrace(); } return list; } }
如此就能完成了,但是值得注意的是,我現(xiàn)在寫(xiě)的這段代碼,無(wú)法自由選擇文件路徑進(jìn)行讀取,excel必須放在固定盤(pán)里。excel后綴必須是.xls,所以wps的excel不可用,而且文件名字不可以是中文。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java 使用poi 導(dǎo)入Excel數(shù)據(jù)到數(shù)據(jù)庫(kù)的步驟
- java實(shí)現(xiàn)批量導(dǎo)入Excel表格數(shù)據(jù)到數(shù)據(jù)庫(kù)
- Java實(shí)現(xiàn)批量導(dǎo)入excel表格數(shù)據(jù)到數(shù)據(jù)庫(kù)中的方法
- Java如何將Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)
- java導(dǎo)出數(shù)據(jù)庫(kù)中Excel表格數(shù)據(jù)的方法
- Java實(shí)現(xiàn)Excel導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)的方法示例
- Java解析Excel文件并把數(shù)據(jù)存入數(shù)據(jù)庫(kù)
- Java實(shí)現(xiàn)把excel xls中數(shù)據(jù)轉(zhuǎn)為可直接插入數(shù)據(jù)庫(kù)的sql文件
- java導(dǎo)出數(shù)據(jù)庫(kù)的全部表到excel
- Java 使用poi把數(shù)據(jù)庫(kù)中數(shù)據(jù)導(dǎo)入Excel的解決方法
- Java實(shí)現(xiàn)上傳Excel文件并導(dǎo)入數(shù)據(jù)庫(kù)
相關(guān)文章
idea打不開(kāi)雙擊IDEA圖標(biāo)沒(méi)反應(yīng)的快速解決方案
這篇文章主要介紹了idea打不開(kāi)雙擊IDEA圖標(biāo)沒(méi)反應(yīng)的快速解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12SpringBoot配置Profile實(shí)現(xiàn)多環(huán)境支持
這篇文章主要介紹了SpringBoot配置Profile實(shí)現(xiàn)多環(huán)境支持操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08JavaCV調(diào)用百度AI實(shí)現(xiàn)人臉檢測(cè)方法詳解
在檢測(cè)人臉數(shù)量、位置、性別、口罩等場(chǎng)景時(shí),可以考慮使用百度開(kāi)放平臺(tái)提供的web接口,一個(gè)web請(qǐng)求就能完成檢測(cè)得到結(jié)果。本文就為大家介紹JavaCV如何調(diào)用百度AI實(shí)現(xiàn)最簡(jiǎn)單的人臉檢測(cè),需要的可以參考一下2022-01-01解決MyEclipse中的Building workspace問(wèn)題的三個(gè)方法
這篇文章主要介紹了解決MyEclipse中的Building workspace問(wèn)題的三個(gè)方法,需要的朋友可以參考下2015-11-11jmeter調(diào)試錯(cuò)誤全集(入門(mén)必備)
在使用jmeter做接口測(cè)試的過(guò)程中大家是不是經(jīng)常會(huì)遇到很多問(wèn)題,本文就介紹了jmeter調(diào)試錯(cuò)誤全集,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11Springboot結(jié)合JDBC實(shí)現(xiàn)雙數(shù)據(jù)源實(shí)例
這篇文章主要為大家介紹了Springboot結(jié)合JDBC實(shí)現(xiàn)雙數(shù)據(jù)源實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12SpringBoot基于Minio實(shí)現(xiàn)分片上傳、斷點(diǎn)續(xù)傳的實(shí)現(xiàn)
本文主要介紹了SpringBoot基于Minio實(shí)現(xiàn)分片上傳、斷點(diǎn)續(xù)傳的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08從字符串中截取等長(zhǎng)字節(jié)的Java代碼
這篇文章主要介紹了從字符串中截取等長(zhǎng)字節(jié)的Java代碼,有需要的朋友可以參考一下2013-12-12