- 浏览: 600175 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
后台
这句话是实现servlet中调用spring bean
filePath是页面file类型的name 它里面的inputStream才有Excel内容。
ExcelUtils
Js 提交按钮代码
Excel下载模板
@SuppressWarnings("all") public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); // 设置编码 DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1024 * 512); factory.setRepository(new File("D:/tempload")); ServletFileUpload fileUpload = new ServletFileUpload(factory); fileUpload.setFileSizeMax(10 * 1024 * 1024);// 设置最大文件大小 // 设置一些父节点的信息 MonitorObjectVO monitorObjectVO = new MonitorObjectVO(); monitorObjectVO.setParent_group_id(request.getParameter("id")); monitorObjectVO.setGroup_type(Integer.parseInt(request.getParameter( "type").trim())); monitorObjectVO.setLayer(Integer.parseInt(request.getParameter("layer") .trim()) + 1); monitorObjectDAO = (MonitorObjectDAO) WebApplicationContextUtils .getRequiredWebApplicationContext(getServletContext()).getBean( "monitorObjectDAO"); try { List<FileItem> items = fileUpload.parseRequest(request);// 获取所有表单 for (FileItem item : items) { if ("filePath".equals(item.getFieldName())) { // 获取excel中的值 List<MonitorObjectVO> excelGroupDataList = ExcelUtils .loadExcel(item.getInputStream(), request.getParameter("filePath")); HttpSession session = request.getSession(true); MessageVO messageVO = new MessageVO(); // 后台批量处理并返回些信息 messageVO = this.monitorObjectDAO.insertGroupFromExcel( excelGroupDataList, monitorObjectVO); // 如果没有错误信息 String parentId = messageVO.getMessage().split("=")[1]; if (excelGroupDataList.size() == Integer.parseInt(messageVO .getShowSuccessCount().trim())) { messageVO.setMessage(""); } session.setAttribute(ConfigConstant.REQUEST_OBJECT, messageVO); response.sendRedirect("/web/edmp/page/abnormalmonitor/monitorobject/ExcelImport.jsp?parent_id=" + parentId); } } } catch (Exception e) { e.printStackTrace(); } }
monitorObjectDAO = (MonitorObjectDAO) WebApplicationContextUtils .getRequiredWebApplicationContext(getServletContext()).getBean( "monitorObjectDAO");
这句话是实现servlet中调用spring bean
if ("filePath".equals(item.getFieldName())) { item.getInputStream() ; }
filePath是页面file类型的name 它里面的inputStream才有Excel内容。
ExcelUtils
@SuppressWarnings("all") public static List<MonitorObjectVO> loadExcel(InputStream is, String filePath) { List<MonitorObjectVO> excelGroups = null; String errorMsg = ""; try { Workbook workBook = null; try { if (filePath.endsWith(".xls")) { // 97-03 workBook = new HSSFWorkbook(is); } else if (filePath.endsWith(".xlsx")) { // 2007 workBook = new XSSFWorkbook(is); } else { System.out.println("不支持的文件类型!"); return null; } } catch (Exception e) { System.out.println("解析Excel文件出错!"); e.printStackTrace(); } finally { is.close(); } int sheets = null != workBook ? workBook.getNumberOfSheets() : 0; excelGroups = new ArrayList<MonitorObjectVO>(); Sheet sheet = workBook.getSheetAt(0); // 读取第一个sheet int rows = sheet.getPhysicalNumberOfRows(); // 获得行数 if (rows > 1) { // 第一行默认为标题 // sheet.getMargin(HSSFSheet.TopMargin); for (int j = 1; j < rows; j++) { Row row = sheet.getRow(j); MonitorObjectVO groupObj = new MonitorObjectVO(); int cells = row.getLastCellNum();// 获得列数 if (cells > 0) { for (int k = 0; k < cells; k++) { Cell cell = row.getCell(k); // 全部置成String类型的单元格 cell.setCellType(Cell.CELL_TYPE_STRING); groupObj.setGroup_name(cell.getStringCellValue()); } } else { errorMsg = "EXCEL没有数据,请确定。"; } excelGroups.add(groupObj); } } else { errorMsg = "EXCEL没有数据,请确定。"; } } catch (Exception ex) { ex.printStackTrace(); } if (errorMsg.length() > 0) { System.out.println("错误消息:" + errorMsg); } return excelGroups; } public static void main(String[] args) { try { System.out.println(loadExcel(new FileInputStream("d:/123.xlsx"), "d:/123.xlsx").size()); } catch (FileNotFoundException e) { e.printStackTrace(); } }
Js 提交按钮代码
/** * 导入内容操作 */ function importContent(){ var fileName = document.excelImportForm.filePath.value; if(fileName==""){ alert("请选择文件!"); return; } var objYesDiv = document.getElementById('yes'); objYesDiv.style.display = "none"; var objNoDiv = document.getElementById('no'); objNoDiv.style.display = "block"; var sending = document.getElementById('sending'); sending.style.visibility="visible"; var messageBar = document.excelImportForm.messageBar.value; if ( messageBar == "true" ){ //excel上传进度条提示信息 onloadExcelProcessMessage(); } var url = getExcelImportAction("importOperate"); document.excelImportForm.action=url; //url即为servlet路径 document.excelImportForm.submit(); }
Excel下载模板
/** * */ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class xxxServlet extends HttpServlet { private static final long serialVersionUID = 1L; // 日志记录 private final static Logger logger = LoggerFactory .getLogger(xxxServlet.class); public void init(ServletConfig servletConfig) throws ServletException { super.init(servletConfig); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { execute(request, response); } @SuppressWarnings("all") public void execute(HttpServletRequest request, HttpServletResponse response) { try { response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=" + new String("xx模板".getBytes("GB2312"), "ISO8859-1") + ".xls"); OutputStream stream = response.getOutputStream(); String path = getServletContext().getRealPath("/"); // 获取源文件路径 File srcFile = new File( path + "\\x\\x\\x\\x\\xx.xls"); InputStream ins = new FileInputStream(srcFile); byte[] byt = null; byt = new byte[ins.available()]; ins.read(byt); stream.write(byt); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
function doDownloadExcelModel() { var webRoot = "xxxx"; var url = webRoot + "/xx/.xxxServlet"; location.href = url; }
发表评论
文章已被作者锁定,不允许评论。
-
java WeakHashMap学习(key是弱引用)
2018-06-21 09:31 1232在Java集合中有一种特殊的Map类型:WeakHashMap ... -
java HashMap TreeMap(key顺序) LinkedHashMap(插入顺序)学习
2018-06-07 10:27 953java为数据结构中的映射定义了一个接口java.util.M ... -
html pre标签使用(保留空格和回车等操作)
2018-05-15 08:37 2442pre 元素可定义预格式化的文本。被包围在 pre 元素中的文 ... -
java RESTful 详解
2018-04-27 11:35 643(1)每一个URI代表一种资源,独一无二; (2)客户端 ... -
java 通过HttpsUrlConnection访问接口数据
2018-04-19 11:25 990server: ssl: key-stor ... -
java 使用多线程的场景总结
2018-04-10 14:35 1704在一个高并发的网站中,多线程是必不可少的。下面先说一下多线程在 ... -
java Enum枚举设置
2018-04-10 10:55 480/** * 数据状态:0:无效,1:有效 **/ ... -
java RestTemplate访问restful服务
2018-03-01 15:02 1622REST的基础知识 当谈论REST时,有一种常见的错误就是将其 ... -
缓存穿透(预设值防止多个进程读取数据库)、缓存并发、缓存失效(过期时间用随机数)学习
2018-02-22 14:25 435一、缓存穿透 我们在项 ... -
java FYOpenApi实现短信发送
2018-01-02 17:10 11741.配置文件 sms.OpenUrl = http://s ... -
java JSONObject序列化包含Date类型数据的Java对象
2017-12-26 16:31 1617如果Date.class无法进行转换则使用Timestamp. ... -
java 用HttpsURLConnection进行传递中文时错误总结
2017-12-07 16:42 654传递中文时需要用Writer而不是OutputStream ... -
java 内存泄漏
2017-11-27 13:51 4961.内存溢出 out of memory ... -
ActiveMQ 三种发送消息方式(同步,异步,单向)
2017-11-17 10:25 2454MQ 发送普通消息有三种实现方式:可靠同步发送、可靠异步发送、 ... -
web http协议学习
2017-11-15 15:15 514HTTP协议是web开发必须掌握的协议之一,文章的内容并没有按 ... -
java Guava ListenableFuture实现线程回调功能
2017-11-14 10:17 1775java Future具有局限性。在实际应用中,当需要下 ... -
java Curator实现分布式锁
2017-09-05 14:39 1090Curator实现分布式锁主要依赖于zookeeper ... -
java Guava工具集学习(强大)
2017-09-05 10:28 433import java.util.Iterator ... -
spring boot进行mybatis和JPA的整合
2017-08-30 10:12 4683初识spring boot Spring框架功能很强大,但是就 ... -
java CyclicBarrier进行并发编程
2017-08-25 15:44 673CyclicBarrier允许一组线程相互等待达到一个公共的障 ...
相关推荐
在Java开发中,上传并解析Excel文件是一种常见的需求,特别是在数据处理、报表导入或系统集成等场景。本篇文章将深入探讨如何实现这个功能,主要涉及的技术包括文件上传、Excel解析以及数据库操作。 首先,我们需要...
3. **解析Excel文件**:使用Apache POI库,创建`Workbook`对象(对于XLSX使用`XSSFWorkbook`,对于XLS使用`HSSFWorkbook`),然后读取工作表(`Sheet`)和行(`Row`),获取单元格(`Cell`)的数据。 4. **数据验证...
2. 在Servlet中,使用Apache POI的API解析上传的Excel文件。例如,`HSSFWorkbook` 对象用于处理旧版的 .xls 文件,而 `XSSFWorkbook` 处理 .xlsx 文件。 3. 读取Excel文件中的数据,可以遍历工作表(`Sheet`),行...
在Java编程环境中,解析Excel文件是一项常见的任务,特别是在数据处理、报表生成或数据分析等领域。Java提供了多种库来处理Excel文件,如Apache POI、JExcelAPI、OpenCSV等,但最常用的是Apache POI库,它是一个用于...
本篇文章将深入讲解如何使用Java解析Excel(包括Excel 2003和2007格式)和CSV文件,并将解析的数据映射到Java Bean,以便后续的数据处理和存储。 首先,我们需要了解如何在Java中处理文件上传。在Servlet环境中,...
本篇文章将深入探讨如何使用Java实现Excel文件的上传和读取,重点关注`MultiFile`转换为`File`以及处理多Sheet页的技巧。 首先,我们需要了解Java中处理Excel的库。Apache POI是一个广泛使用的开源库,它提供了API...
这个场景中,我们将讨论如何使用Servlet和JSP来实现在Java Web应用中完成Excel文件的上传,并将其数据导入到MySQL数据库。Servlet是Java中用于处理HTTP请求的服务器端组件,而JSP则是一种动态网页技术,它们结合使用...
在这个项目中,POI是读取和解析Excel文件(包括XLS和XLSX格式)的关键库。 7. **Excel数据解析**:使用POI库,可以访问Excel文件中的单元格,行和列,进行数据读取。这包括理解工作表结构,获取特定单元格的值,...
在导入Excel功能中,Java程序通常会读取用户上传的Excel文件,解析其中的数据,可能将其存储到数据库或进行其他处理。这涉及到POI的HSSFWorkbook(.xls文件)或XSSFWorkbook(.xlsx文件)类,用于打开Excel文件,...
Java有许多库可以帮助解析Excel文件,如Apache POI。使用POI,可以创建一个工作簿对象,读取工作表,遍历单元格,获取并处理数据。 4. **异常处理**:在处理文件上传和解析时,需要考虑可能出现的异常,如文件类型...
总结来说,Java中处理Excel文件涉及文件的下载、上传、解析和生成,这些操作可以通过Servlet API、Apache POI等工具库来实现。通过理解这些概念和技术,开发者可以有效地处理与Excel相关的业务需求。
在IT行业中,Excel上传并解析Java对象是一项常见的数据处理任务,尤其在数据分析、报表生成以及数据导入导出等场景中尤为常见。这个过程涉及到的主要技术包括文件上传、Excel读取、数据转换以及Java对象映射。下面将...
综上所述,Java操作Excel并输出到网页涉及多个技术环节,从文件上传、Excel解析、数据处理到Web展示,都需要细致的编程和设计。理解这些知识点并灵活运用,可以构建出高效且用户友好的数据处理系统。
在示例代码中,没有直接使用POI,但我们可以推断,服务层(如`ExcelServiceImpl`)可能使用了POI来读取和解析Excel数据。POI提供了HSSF和XSSF两个组件分别处理旧版的.xls和新版的.xlsx格式。 文件上传是Web应用中...
解析Excel文件通常涉及到读取文件内容,使用Apache POI,我们可以创建一个Workbook对象来代表整个Excel文件,Sheet对象代表工作表,Row对象代表行,Cell对象则代表单元格。通过遍历这些对象,我们可以获取或设置...
本篇文章将详细介绍如何利用Java实现这一功能,主要涉及的技术包括Java Servlet、JSP以及JExcelAPI(jxl)库。 首先,我们需要了解Java Servlet在其中的作用。Servlet是Java Web应用程序的一部分,它运行在服务器端...
在这个名为"小项目上传解析excel文件"的实践中,我们将探讨如何使用JavaWeb技术来实现Excel文件的上传、解析以及将数据存储到数据库中。以下是对这一主题的详细阐述: 1. **文件上传**: - 在JavaWeb应用中,文件...
Java通过Apache POI库可以实现对Excel文件的读取、写入和修改,这是一个广泛应用于Java开发中的实用技术。下面将详细阐述相关知识点: 1. **Apache POI库**:Apache POI是Apache软件基金会的一个开源项目,它提供了...
总结来说,Apache POI是Java处理Excel文件的强大工具,通过它我们可以轻松地实现Excel的上传和下载功能,满足Web应用中的数据交互需求。在实际项目中,理解并掌握POI的使用方法对于提升工作效率至关重要。
因此,提出了一种新的解决方案:结合JavaExcelAPI和JDOM(Java本地XML API),将Excel文件转化为XML格式在网络上传输,再于客户端利用JDOM解析文件内容并结合JavaExcelAPI将XML转换回Excel,实现企业间的数据通信和...