1. Excel文件使用Http服务实现下载
1.1. 在web.xml文件中注册新建的Servlet
<!-- ExcelDownloadServlet -->
<servlet>
<servlet-name>excelDownloadServlet</servlet-name>
<servlet-class>
com.jerry.support.ExcelDownloadServlet
</servlet-class>
<load-on-startup>5</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>excelDownloadServlet</servlet-name>
<url-pattern>/excelDownloadServlet</url-pattern>
</servlet-mapping>
1.2. 创建ExcelDownloadServlet.java类,在容器中查找相应service服务,使用service服务去完成预定的任务
public class ExcelDownloadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
IExcelService iEexcelService = ServiceLocator.getInstance().getService("iEexcelService");
response.reset(); // 重置response
response.setContentType("application/msexcel;charset=\"UTF-8\"");
response.setHeader("Content-disposition","attachment; filename=IndexModelExcel.xls");
BufferedInputStream in = null;
BufferedOutputStream out = null;
try {
String path = iEexcelService.downloadTemplate(request);
PathUtils utils = new PathUtils();
File file = new File(utils.getWebRoot() + path);
in = new BufferedInputStream(new FileInputStream(file));
out = new
BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[1024];
while (-1 != in.read(buff)) {
out.write(buff);
buff = new byte[1024]; // 需要扩充字符数组
}
try {
if (null != in)
in.close();
if (null != out)
out.close();
} catch (IOException e) {
e.printStackTrace();
}
response.flushBuffer();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request,
HttpServletResponse response) {
this.doGet(request, response);
}
}
request.getRequestURL():http://200.200.202.189:8081/project /excelDownloadServlet
request.getContextPath():/project
url: http://200.200.202.189:8081/visu/IndexExcel.xls
1.3.Web工程路径Utils
public class PathUtils {
/**
* 获取工程类路径(绝对路径)
*
* @return
*/
public String getWebClassesPath() {
String
path =
getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
return path;
}
/**
* 获取WEB-INF文件夹路径(绝对路径)
*
* @return
* @throws
IllegalAccessException
*/
public String getWebInfPath() throws IllegalAccessException{
String path = getWebClassesPath();
if (path.indexOf("WEB-INF") > 0) {
path = path.substring(0, path.indexOf("WEB-INF")+8);
} else {
throw new IllegalAccessException("路径获取错误");
}
return path;
}
/**
* 获取WebRoot文件夹路径(绝对路径)
*
* @return
* @throws
IllegalAccessException
*/
public String getWebRoot() throws IllegalAccessException{
String path = getWebClassesPath();
if (path.indexOf("WEB-INF") > 0) {
path = path.substring(0, path.indexOf("WEB-INF/classes"));
} else {
throw new IllegalAccessException("路径获取错误");
}
return path;
}
public static void main(String[] args) throws Exception {
PathUtils
utils = new PathUtils();
System.out.println("1、" + utils.getWebClassesPath());
System.out.println("2、" + utils.getWebInfPath());
System.out.println("3、" + utils.getWebRoot());
}
}
输出:1、/E:/Workspaces/MyEclipse/project/WebRoot/WEB-INF/classes/
2、/E:/Workspaces/MyEclipse/project/WebRoot/WEB-INF/
3、/E:/Workspaces/MyEclipse/project/WebRoot/
1.4. 浏览器远程调用servlet在服务器端生成Excel文件,发生乱码及无法打开Excel文件的问题是因为在生成Excel文件时没有指定文件的编码格式,采用UTF-8的格式
File file = new File(realPath);
file.createNewFile();
FileOutputStream
fos = new FileOutputStream(file);
OutputStreamWriter osw = new
OutputStreamWriter(fos, "UTF-8");
osw.write(excelXml);
osw.flush();
fos.close();
分享到:
相关推荐
本文将详细介绍如何使用C#结合ADO.NET来实现这一功能,包括创建Excel文件、填充数据以及提供下载链接等步骤。 #### 一、连接数据库并获取数据 首先,我们需要建立与数据库的连接,并执行SQL查询来获取所需的数据。...
"Excel文件上传预览示例"是一个典型的 ASP.NET C# 应用程序,它展示了如何实现用户上传Excel文件并进行预览的功能。这个功能在很多业务系统中都有广泛的应用,比如数据分析、财务报表、销售统计等。下面将详细解释这...
本文档将详细介绍如何使用Java Server Pages (JSP) 实现从服务器端下载Excel文件到客户端的过程。 #### 二、准备工作 1. **环境配置**: - Java 开发工具包 (JDK) - Apache Tomcat 或其他支持 JSP 的 Web 服务器...
5. DataExcel.v1.1.dll:这是另一个版本为1.1的Excel处理库,可能包含了对Excel文件读写的具体实现。 6. DataProject2023.exe和DataExcel.exe:这两个是可执行文件,分别可能是服务器主程序和Excel操作的前端界面。 ...
在Spring Boot中实现Excel的导入导出... filename=employees.xlsx,这样浏览器就会将响应解释为要下载的Excel文件。 将Excel写入响应流: 使用response.getOutputStream()获取输出流,然后将工作簿写入到输出流中.....
前言项目中使用到比较多的关于Excel的前端上传与下载,整理出来,以便后续使用或分析他人。 1.前端vue:模板下载与导入Excel 导入Excel封装了子组件,点击导入按钮可调用子组件,打开文件上传的对话框,上传成功后...
在Spring Boot框架中,实现Excel文件的解析是一个常见的需求,特别是在数据导入、导出或数据分析的应用场景中。本文将深入探讨如何使用Spring Boot结合Java来处理Excel文件。 首先,我们需要引入处理Excel文件的库...
本文将深入探讨如何使用Java实现文件下载,并在客户端弹出保存对话框,特别聚焦于Excel文件的处理,这在企业级应用中尤为常见。 ### Java实现文件下载的关键步骤 1. **设置HTTP响应头**:为了触发浏览器的下载行为...
openExcel 方法用于打开选择的 Excel 文件,我们使用 MFC 的 CFileDialog 类来实现文件对话框,选择要打开的 Excel 文件。 通过使用 COM 接口,我们可以轻松地操作 Excel 文件,实现对 Excel 文件的各种操作。这种...
例如,下面是一个简单的示例,展示了如何使用NPOI创建一个包含一行数据的Excel文件: ```vbnet Imports NPOI.SS.UserModel Imports NPOI.HSSF.UserModel Public Class Program Public Shared Sub Main() Dim ...
本篇文章将详细讲解如何利用ASP.NET与Ajax技术实现在Web应用中导出Excel文件。 首先,ASP.NET是Microsoft开发的一个用于构建动态网站、Web应用程序和服务的框架。它基于.NET Framework,提供了丰富的服务器控件、...
JavaScript 使用ActiveX实现在Excel文件中插入图片
总结来说,实现LiberOffice在线编辑Word和Excel文件的应用涉及的技术点包括:LiberOffice的OpenDocument格式、Maven构建、Web应用程序开发、文件上传与下载、实时同步、服务进程管理、文件安全存储以及兼容性测试。...
1、java解析读取excel文件中的数据,并写入数据库。 2、java读取数据库数据,并导出为excel文件。 3、README.md中有详细的操作步骤示例。 使用说明: 1. 先使用postman导入:other/excel相关.postman_collection....
springboot实现Excel文件导入与导出功能, 本次任务主要实现两个功能,一是如何将Excel文件导入后台服务器,解析文件中的内容,并且存入数据库中。二是如何将后台数据库中的数据导出为Excel表格。经过调研,实现此...
在本场景中,"ASP生成EXCEL并自动下载"是一个技术主题,涉及到使用ASP编程来创建Excel文件,并允许用户在浏览器中直接下载。这个主题分为两个主要部分: 1. **纯ASP生成并下载EXCEL文件**: 在这部分,我们将探讨...
本文将详细讲解如何使用Java实现从MySQL数据库的表导出到Excel文件的过程,以及涉及到的关键技术和工具。 首先,我们需要了解的是Java与数据库交互的基础——JDBC(Java Database Connectivity)。JDBC是Java API,...
- Pandas包, 后台实现EXCEL文件生成和写操作。 - csv包,后台实现csv文件生成和写操作。 - reportlab包, 后台实现PDF文件生成和写操作。 - Flask的send_file包, 实现从后端向发送请求的客户端传送文件。 提供了...
在Java编程环境中,将多个Excel文件打包成ZIP文件并实现下载功能是一项常见的需求,尤其是在数据导出或批量处理场景中。下面将详细讲解这个过程涉及的主要知识点。 首先,我们需要了解Java中的`java.util.zip`包,...