当前位置: 代码迷 >> 综合 >> java-导入excel文档
  详细解决方案

java-导入excel文档

热度:109   发布时间:2023-09-27 23:49:29.0

java的jxl 导入excel文档思路是  写一个页面,上传 excel 数据  包是jxl.jar  下载地址 jxl.jar包

这个代码的确定是 只有 不支持最新版本的 只支持.xls版本

例如:

     <form name="formName" enctype="multipart/form-data" id="myform" action="${WebUrl}/io/weixin/Keywords/makeMultiple.htm" method="POST">    <input type="file"  name="file" id="input-file"/><br><br><div></div><input type="submit" value="确定上传" class="upload" /></form>
然后就是后端接收:

	
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.CellFormat;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCell;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;/*** 导入excel* @param request* @param response* @return*/@SuppressWarnings({ "deprecation", "rawtypes", "unused" })@RequestMapping("makeMultiple")public String makeMultiple(HttpServletRequest request, HttpServletResponse response){Map<String, Object> context = getRootMap(request);//Excel文件上传String sIp = request.getRemoteAddr();DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);String sUploadPath = request.getRealPath("/")+"upload/twoDCode/"+sIp.replaceAll("\\.", "_");File ufolder = new File(sUploadPath);if(!ufolder.exists()) ufolder.mkdirs();File file = null;int iUpFileSize = 0;FileItem fi = null;String sUploadFileName = null;SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");byte[] b = null;int iRb = 0;Map<String, Object> paramMap = new HashMap<String, Object>();Integer iPicSize = 0;String sMicoPhotoData = null;try{List items = upload.parseRequest(request);Iterator itr = items.iterator();while (itr.hasNext()){fi = (FileItem)itr.next();if(!fi.isFormField()){if(fi.getName() != null && !fi.getName().equals("")){iUpFileSize = (int)fi.getSize();sUploadFileName = sdf.format(new Date()) + ".xls";file = new File(sUploadPath + "/" + sUploadFileName);InputStream is = fi.getInputStream();FileOutputStream fos = new FileOutputStream(file);b = new byte[iUpFileSize];iRb = is.read(b);fos.write(b, 0, iRb);fos.close();}}else{paramMap.put(fi.getFieldName(), fi.getString("UTF-8"));}}iPicSize = NumberUtils.toInt((String)paramMap.get("mpicsize"), 256);sMicoPhotoData = (String)paramMap.get("micophotodata");Workbook workbook = Workbook.getWorkbook(new File(sUploadPath + "/" + sUploadFileName));Sheet sheet = null;String months = null, keywords = null,sUrl = null;int iSum = 0;int iTmp = 0;String sDownloadPath = request.getRealPath("/")+"download/twoDCode/"+sIp.replaceAll("\\.", "_");File dfolder = new File(sDownloadPath);if(!dfolder.exists()) dfolder.mkdirs();sheet = (Sheet)workbook.getSheet(0);for(int i = 1; i < sheet.getRows(); i++){
iSum++;
//上面的代码基本都不需要动 ,改这里就行了
months = sheet.getCell(7, i).getContents();//得到excel里面的第几列内容
keywords = sheet.getCell(8, i).getContents();//得到excel里面的第几列内容 sUrl = sheet.getCell(9, i).getContents();//得到excel里面的第几列内容WeixinArticle article = new WeixinArticle();
article.setMonths(months);
article.setKeywords(keywords);
article.setContent_source_url(sUrl);if(articleService.updateArticle(article)) //保存数据库
{
iTmp++;
}
else 
{System.out.println("------第"+iSum+"行添加失败--------");System.out.println(months);System.out.println(keywords);System.out.println(sUrl);System.out.println("===============分割线===================");}}System.out.println(iSum+"-----总数------");System.out.println(iTmp+"-----修改成功数量------");workbook.close();context.put("count", iSum);return "-----总数------"+iSum+"-----修改成功数量------"+iTmp;}catch(Exception e){e.printStackTrace();return null;}}
 
	@SuppressWarnings("unchecked")public Map<String,Object> getRootMap(HttpServletRequest request){Map<String,Object> rootMap = new HashMap<String, Object>();rootMap.putAll((Map<String,Object>)request.getSession().getServletContext().getAttribute("webconfig"));Map<String,Boolean> authMap = (Map<String,Boolean>)request.getSession().getAttribute("userauth");rootMap.put("authMap", authMap);return rootMap;}
 如果有什么问题 入群交流 群号在博客最上面