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

qq_36409740 2016-12-17 04:04:55
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 = 1; rowNum <= 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 = minColIx; colIx < maxColIx; colIx++) {
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/html; charset=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=0;i<list.size();i++){
de=list.get(i);
if(dao.adden(define)){
response.sendRedirect("index.jsp");
}
else out.println("读取失败");
}
out.flush();
out.close();

}
}
...全文
435 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱睡觉的阿狸 2016-12-24
  • 打赏
  • 举报
回复
引用 4 楼 qq_36409740 的回复:
InputStream is = new FileInputStream(path); String path = request.getParameter("path"); 显示是这些语句里有空指针
那你就做个非空判断
qq_36409740 2016-12-24
  • 打赏
  • 举报
回复
InputStream is = new FileInputStream(path); String path = request.getParameter("path"); 显示是这些语句里有空指针
绝望的奶黄包 2016-12-18
  • 打赏
  • 举报
回复
引用 2 楼 qq_36409740 的回复:
怎么说 兄弟 您帮我看一下代码到底哪里错了
贴错误信息才会有人帮你看啊。
qq_36409740 2016-12-17
  • 打赏
  • 举报
回复
怎么说 兄弟 您帮我看一下代码到底哪里错了
oh_Maxy 2016-12-17
  • 打赏
  • 举报
回复
老兄你可以把这个问题拆成两个问题: 1. java读取Excel(POI) 2. java操作数据库 (JDBC连接) 加油!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧