Java用jxl讀取excel并保存到數(shù)據(jù)庫的方法
項目中涉及到讀取excel中的數(shù)據(jù),保存到數(shù)據(jù)庫中,用jxl做起來比較簡單。
基本的思路:
把excel放到固定盤里,然后前段頁面選擇文件,把文件的名字傳到后臺,再利用jxl進(jìn)行數(shù)據(jù)讀取,把讀取到的數(shù)據(jù)存到list中,通過遍歷list,得到map,存到數(shù)據(jù)庫中。
首先導(dǎo)入jar包:在網(wǎng)上都有,
代碼:
頁面:
新模excel導(dǎo)入
<input type="file" name="excel" id="xinmu">
<input type="button" id="newmj" value="導(dǎo)入">
js
//通過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);// 表格存儲的位置 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處理類
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); // 獲得第一個工作表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ù)庫的操作 //....... System.out.println(list); workbook.close();// 關(guān)閉 } catch (Exception e) { e.printStackTrace(); } return list; } }
如此就能完成了,但是值得注意的是,我現(xiàn)在寫的這段代碼,無法自由選擇文件路徑進(jìn)行讀取,excel必須放在固定盤里。excel后綴必須是.xls,所以wps的excel不可用,而且文件名字不可以是中文。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java 使用poi 導(dǎo)入Excel數(shù)據(jù)到數(shù)據(jù)庫的步驟
- java實現(xiàn)批量導(dǎo)入Excel表格數(shù)據(jù)到數(shù)據(jù)庫
- Java實現(xiàn)批量導(dǎo)入excel表格數(shù)據(jù)到數(shù)據(jù)庫中的方法
- Java如何將Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫
- java導(dǎo)出數(shù)據(jù)庫中Excel表格數(shù)據(jù)的方法
- Java實現(xiàn)Excel導(dǎo)入導(dǎo)出數(shù)據(jù)庫的方法示例
- Java解析Excel文件并把數(shù)據(jù)存入數(shù)據(jù)庫
- Java實現(xiàn)把excel xls中數(shù)據(jù)轉(zhuǎn)為可直接插入數(shù)據(jù)庫的sql文件
- java導(dǎo)出數(shù)據(jù)庫的全部表到excel
- Java 使用poi把數(shù)據(jù)庫中數(shù)據(jù)導(dǎo)入Excel的解決方法
- Java實現(xiàn)上傳Excel文件并導(dǎo)入數(shù)據(jù)庫
相關(guān)文章
idea打不開雙擊IDEA圖標(biāo)沒反應(yīng)的快速解決方案
這篇文章主要介紹了idea打不開雙擊IDEA圖標(biāo)沒反應(yīng)的快速解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12SpringBoot配置Profile實現(xiàn)多環(huán)境支持
這篇文章主要介紹了SpringBoot配置Profile實現(xiàn)多環(huán)境支持操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08JavaCV調(diào)用百度AI實現(xiàn)人臉檢測方法詳解
在檢測人臉數(shù)量、位置、性別、口罩等場景時,可以考慮使用百度開放平臺提供的web接口,一個web請求就能完成檢測得到結(jié)果。本文就為大家介紹JavaCV如何調(diào)用百度AI實現(xiàn)最簡單的人臉檢測,需要的可以參考一下2022-01-01解決MyEclipse中的Building workspace問題的三個方法
這篇文章主要介紹了解決MyEclipse中的Building workspace問題的三個方法,需要的朋友可以參考下2015-11-11Springboot結(jié)合JDBC實現(xiàn)雙數(shù)據(jù)源實例
這篇文章主要為大家介紹了Springboot結(jié)合JDBC實現(xiàn)雙數(shù)據(jù)源實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12SpringBoot基于Minio實現(xiàn)分片上傳、斷點(diǎn)續(xù)傳的實現(xiàn)
本文主要介紹了SpringBoot基于Minio實現(xiàn)分片上傳、斷點(diǎn)續(xù)傳的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08