
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()
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)