java如何读取xlsx并存入数据库

java如何读取xlsx并存入数据库,第1张

The server encountered an internal error () that prevented it from fulfilling this request.

package Read

import java.io.FileInputStream

import java.io.IOException

import java.io.InputStream

import java.util.ArrayList

import java.util.List

import org.apache.poi.ss.usermodel.Cell

import org.apache.poi.ss.usermodel.Row

import org.apache.poi.ss.usermodel.Sheet

import org.apache.poi.ss.usermodel.Workbook

import org.apache.poi.xssf.usermodel.XSSFCell

import org.apache.poi.xssf.usermodel.XSSFRow

import org.apache.poi.xssf.usermodel.XSSFSheet

import org.apache.poi.xssf.usermodel.XSSFWorkbook

import bean.define

public class readxlsx {

public List<List<String>>readxl(String path) throws IOException{

InputStream is = new FileInputStream(path)

XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is)

List<List<String>>result = new ArrayList<List<String>>()

/*

//Sheet xssfSheet = null

//循环每一页,并处理当前循环页*/

for (XSSFSheet xssfSheet: xssfWorkbook) {

if (xssfSheet == null)

continue

//处理当前页,循环读取每一行

for (int rowNum = 1rowNum <= xssfSheet.getLastRowNum()rowNum++){

XSSFRow xssfRow = xssfSheet.getRow(rowNum)

int minColIx = xssfRow.getFirstCellNum()

int maxColIx = xssfRow.getLastCellNum()

List<String>rowList = new ArrayList<String>()

//List<define>list = null

//遍历该行,获取处理每个cell元素

for (int colIx = minColIxcolIx <maxColIxcolIx++) {

XSSFCell cell = xssfRow.getCell(colIx)

if(cell == null) {

define define = new define()

XSSFCell id = xssfRow.getCell(0)

XSSFCell what = xssfRow.getCell(1)

define.setId(id.getStringCellValue())

define.setWhat(what.getStringCellValue())

continue

}

rowList.add(cell.toString())

}

result.add(rowList)

}

}

return result

}

}

package com.runoob.test

import java.io.IOException

import java.util.List

import java.io.PrintWriter

import java.sql.SQLException

import javax.servlet.ServletException

import javax.servlet.http.HttpServlet

import javax.servlet.http.HttpServletRequest

import javax.servlet.http.HttpServletResponse

import Dao.dao

import bean.define

import Read.readxlsx

public class adden extends HttpServlet{

private define define

@Override

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("UTF-8")

response.setContentType("text/htmlcharset=UTF-8")

readxlsx readxlsx = new readxlsx()

String path = request.getParameter("path")

PrintWriter out = response.getWriter()

List<List<String>>list = readxlsx.readxl(path)

String id = request.getParameter("id")

String what = request.getParameter("what")

List<String>de = new define()

dao d = new dao()

for(int i=0i<list.size()i++){

de=list.get(i)

if(dao.adden(define)){

response.sendRedirect("index.jsp")

}

else out.println("读取失败")

}

out.flush()

out.close()

}

}

通过java的poi读取xlsx文件:

将excel文件使用文件流读取

把excel的文件流转化成excel的工作

获取工作薄的sheet(工作表),迭代获取

最后再次迭代每一个sheet,获取每一行的每一个单元格,把数据取出存储起来

poi 读取excel数据

excel2003

FileInputStream fin

try{

fin = newFileInputStream("D:\\workbook.xls")

HSSFWorkbook workBook = newHSSFWorkbook(fin)

HSSFSheet sheet = workBook.getSheetAt(0)

for(inti = 0 i < sheet.getLastRowNum() i++)

{

HSSFRow row = sheet.getRow(i)

HSSFCell cell = row.getCell((short) 0)

String value= row.getCell((short) 0).getStringCellValue()

}

}

catch(FileNotFoundExceptione)

{

e.printStackTrace()

} catch(IOException e)

{

e.printStackTrace()

}

2.excel2007

XSSFWorkbook workbook

FileInputStream fin

try{

fin = newFileInputStream("D:\\workbook.xlsx")

workbook = newXSSFWorkbook(fin)

XSSFSheet sheet = workbook.getSheetAt(0)

for(inti = 1 i < sheet.getLastRowNum() i++)

{

XSSFRow row = sheet.getRow(i)

XSSFCell cell = row.getCell(1)

String value= cell.toString()

}

}

catch(FileNotFoundException e)

{

e.printStackTrace()

} catch(IOException e)

{

e.printStackTrace()

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9594461.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存