`
mengxianhua
  • 浏览: 32349 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

POI将数据导入Excel,上传到服务器,并从客户端保存

阅读更多

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="gb2312"%>
<%@ page import="com.hzpcssys.dao.DBHelper"%>
<%@ page import="org.apache.poi.hssf.usermodel.*" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>POI将数据导入Excel,上传到服务器,并从客户端保存</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

</head>

<body>
<%
Map recordMap = null;
String key = "";
String value = "";

String sql = DBHelper.tostr(request.getParameter("sql").toString());
ArrayList recordList = (ArrayList)DBHelper.executeQuerySQL(sql);

try {
// 创建新的Excel工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在excel中新建一个工作表,起名字为工作对象
HSSFSheet sheet = workbook.createSheet("工作对象");
for(int i = 0; i < recordList.size(); i++) {
// 创建第行
HSSFRow row = sheet.createRow(i);
// 结果集Map
recordMap = (Map)recordList.get(i);
// 遍历recordMap的键 值
Iterator keyValuePairs = recordMap.entrySet().iterator();
for(int j = 0; j < recordMap.size(); j++) {
// 创建第列
HSSFCell cell = row.createCell((short)j);
// 定义单元格为字符串类型
cell.setEncoding(HSSFCell.ENCODING_UTF_16);

Map.Entry entry = (Map.Entry) keyValuePairs.next();
key = entry.getKey()==null?"":entry.getKey().toString();
value = entry.getValue()==null?"":entry.getValue().toString();
cell.setCellValue(value);
}
}

// 文件存放位置 保存于服务器
String filePath = application.getRealPath("\\temp")+"\\recordToExcel.xls";
// 新建一输出流
FileOutputStream fout = new FileOutputStream(filePath);
// 存盘
workbook.write(fout);

// 清空缓冲区
fout.flush();
// 结束关闭
fout.close();
// 文件下载路径
String fileDownloadPath = request.getRequestURL().substring(0, request.getRequestURL().lastIndexOf("/"))
+ "/temp/recordToExcel.xls";
// 保存到本地文件名
String saveFileName = "recordToExcel.xls";


// 以下主要实现 Excel文件下载
// 设置响应头和下载保存的文件名
response.reset();
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=\"" + saveFileName + "\"");

String temp = application.getRealPath("/temp/recordToExcel.xls");
FileInputStream fis = new FileInputStream(temp);

// 写出流信息
int i = 0;
while ((i=fis.read()) != -1) {
out.write(i);
}
fis.close();
out.flush();
out.close();

} catch(IOException e){
e.printStackTrace();
}
%>
</body>
</html>

分享到:
评论

相关推荐

    SpringBoot +Mybatis +POI导入、导出Excel文件

    总的来说,"SpringBoot + Mybatis + POI导入、导出Excel文件"的项目是一个实用的工具,可以帮助开发者快速实现数据交换功能,提高工作效率。通过理解SpringBoot的自动配置、Mybatis的SQL映射以及POI的Excel操作,...

    ExtJS poi 导入excel

    标题 "ExtJS poi 导入excel" 涉及到两个主要技术:ExtJS 和 Apache POI,它们在Java环境中用于处理Excel数据。ExtJS 是一个JavaScript库,主要用于构建富客户端应用程序,而Apache POI是Java的一个开源项目,用于...

    把Gridview中数据导入到Excel

    在.NET开发环境中,将GridView中的数据导入到Excel是一项常见的需求,尤其在数据分析、报表生成或者数据备份时。这里我们将详细探讨如何实现这个功能,并且还会提及如何在Excel中实现数据的编辑。 首先,我们需要...

    poi 3.17 上传下载Excel ajax + spingmvc 弹出弹窗

    "poi 3.17 上传下载Excel ajax + spingmvc 弹出弹窗" 涉及到的是一个Web应用开发中的功能模块,它使用了Apache POI 3.17版本来处理Excel文件,同时结合了Ajax、SpringMVC框架以及弹窗技术,实现了高效的数据导入导出...

    jsp实现excel上传至数据库,以及 从数据库导出excel

    本项目中,Excel文件被用作数据交换的载体,既可以作为输入从客户端上传,也可以作为输出由服务器生成。 4. Apache POI:Apache POI是一个开源库,用于读写Microsoft Office格式的文件,包括Excel。在本项目中,POI...

    springmvc+POI的Excel文件导入导出

    总结起来,"SpringMvc+POI的Excel文件导入导出"涉及到的关键技术包括Spring MVC的文件上传处理、Apache POI的Excel读写操作、以及模板填充和导出。通过熟练掌握这些技术,开发者能够高效地处理企业级应用中的Excel...

    Java web 数据库数据与excel表格形式导入导出.docx

    Java Web 数据库数据与 Excel 表格形式导入导出是指通过 Java Web 应用程序将数据库数据导入到 Excel 表格中,并实现数据的导出。该技术主要利用了 JXL(Java Excel API)和 POI(Apache POI)技术来实现数据的导入...

    Excel poi java jsp

    4. **数据转换**: 将获取到的数据转化为适合Excel的格式,用Apache POI库构造Excel工作簿。 5. **响应输出**: 通过`ServletResponse`的`getOutputStream()`方法将Excel文件内容发送到客户端。 **JSP** JSP(Java...

    将数据导成excel

    例如,`importEmployee()`方法可能负责从客户端接收到的上传Excel文件,并将其解析为数据模型对象(如`EmployeeInfo`类)。 `ExcelAction.java`可能是用来处理导出Excel操作的核心类。在这个类中,开发者可能会定义...

    非常详细的用 java(springmvc+mybatis)实现excel导入功能并且保存到数据库

    "Java实现Excel导入功能并保存到数据库" 以下是根据给定的文件信息生成的相关知识点: 知识点1:Java Web开发框架SpringMVC 在本实例中,使用了SpringMVC框架来实现Web应用程序。SpringMVC是一种基于Java的Web...

    ajax 上传 下载 把excel 中的数据导入到数据库 struts

    本文将深入探讨如何使用AJAX技术、Java和Struts框架来实现一个功能,即通过AJAX实现Excel文件的上传,并将其中的数据导入到数据库中。 首先,我们需要了解AJAX(Asynchronous JavaScript and XML)的核心概念。它是...

    利用apache的poi上传excel

    9. **上传到服务器**:如果涉及到文件上传,你可能需要使用HTTP客户端库(如Apache HttpClient或Java的内置HttpURLConnection)将Excel文件上传到服务器。 10. **数据验证**:在导入数据前,你可能需要验证Excel...

    springboot-poi-excel.zip

    本项目"springboot-poi-excel.zip"显然是一个整合了Spring Boot和Apache POI的示例,用于实现从数据库中导出数据到Excel,以及解析用户上传的Excel文件执行相应的操作。 1. **Spring Boot介绍** Spring Boot是由...

    java 基于poi的excel操作工具类

    本文将深入探讨基于Apache POI的Java Excel操作工具类的实现,包括导入Excel、导出Excel以及直接存储到服务器或返回流。 首先,`ExcelUtil.java` 文件很可能是这个工具类的核心实现,它包含了对Excel文件的各种操作...

    文件上传下载 excel导入导出 及http 传输

    导入Excel时,我们通常会遍历工作表中的单元格,将数据转化为适合存储在数据库或内存中的形式。导出时,我们创建新的工作表,填充数据,然后生成文件供用户下载。 再者,HTTP传输是Web服务的基础。HTTP(超文本传输...

    ESHHUeditor 实例Excel导入导出

    导入Excel数据时,会将解析出的数据映射到对应的实体类,再通过Hibernate的Session进行保存操作,插入到数据库中。 5. 数据导出:导出数据至Excel则涉及到数据查询和Excel文件的生成。首先,根据需求从数据库中查询...

    extjs 导入导出 Exel

    一种常见的方式是通过服务器端处理,EXTJS 发送请求,携带需要导出的数据,服务器端将这些数据转换为Excel 格式并返回给客户端。例如,文件"ExtJS实现Excel的导出功能_ns1990love的空间_百度空间.mht"可能包含了关于...

    Ext中的Excel导入界面

    3. **AJAX上传**:使用ExtJS的Ajax请求(`Ext.Ajax.request`)或者FormPanel的submit方法,将文件数据发送到后台服务器。通常,文件内容会被转换成Base64编码或使用FormData对象封装。 4. **文件类型验证**:在前端...

    BS模式的Excel导入导出

    1. **Excel导入**:用户可以从本地电脑选择Excel文件,将其内容上传到Web应用。这个过程通常涉及以下步骤: - 文件上传:用户通过HTML表单选择Excel文件,然后通过HTTP请求将其发送到服务器。 - 数据解析:服务器...

    android导入excel

    使用Apache POI,开发者可以直接在服务器端处理Excel文件,然后将结果发送到Android客户端。 3. **文件选择器**:为了导入电脑上的Excel文件,应用需要包含一个文件选择器组件,如Android的`Intent.createChooser()...

Global site tag (gtag.js) - Google Analytics