下载图片,文档,excel导入导出
Q1:下载图片,文档
--1:Fileio.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body><p><a href="Download?filename=images/猴哥.jpg">下载猴哥0</a><br /> <ahref="Download?filename=images/pic(10).jpg">下载图片1</a><br /> <ahref="Download?filename=images/pic(11).jpg">下载图片2</a><br /> <ahref="Download?filename=images/pic(12).jpg">下载图片3</a></p><p><a href="Download?filename=LICENSE.txt">下载文本</a></p> </body> </html>
-2:servlet(Download)
package com.action;import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@WebServlet("/Download") public class Download extends HttpServlet {private static final long serialVersionUID = 1L;public Download() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String filename = request.getParameter("filename");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");//获得要下载的文件路径String path=getServletContext().getRealPath(filename);System.out.println(path);//获得文件名//H:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\AjaxResult\images\12.jpgString name=path.substring(path.lastIndexOf("\\")+1);//转码name=URLEncoder.encode(name,"utf-8"); //修改http头部,设置输出为附件response.setHeader("Content-Disposition", "attachment;filename="+name);//输入流,获得文件的字节流 InputStream is=new FileInputStream(path);byte[] bytes=new byte[is.available()];is.read(bytes);//将字节流写入response中 response.getOutputStream().write(bytes);is.close();response.flushBuffer();response.getOutputStream().flush();}}
--点击下载时
提示:本文的最后会有java编译器图片附上
Q2:Excel导出的第一种方式,也是比较简单的一种方式
1.html用上面的就好,只是加了一点代码
<P><a href="DownloadXLS">导出xls</a></P>
2:servlet(DownloadXLS)--此方法用于不连接数据库操作
package com.action;import java.io.IOException; import java.net.URLEncoder;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@WebServlet("/DownloadXLS") public class DownloadXLS extends HttpServlet {private static final long serialVersionUID = 1L;public DownloadXLS() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String filename = request.getParameter("filename");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");// 写入bom头byte[] uft8bom={(byte)0xef,(byte)0xbb,(byte)0xbf};String name=URLEncoder.encode("月度收入报表.csv","utf-8"); //修改http头部,设置输出为附件response.setHeader("Content-Disposition", "attachment;filename="+name);String result="日期,收入\r\n";for (int i = 1; i <=10; i++) {result+="2018-06-"+i+","+(i*10)+"万\r\n";}result=new String(result.getBytes(),"utf-8");//将字节流写入response中response.getOutputStream().write(uft8bom); //写入头部解决乱码问题response.getOutputStream().write(result.getBytes("utf-8"));response.flushBuffer();response.getOutputStream().flush();}}
3:servlet(DownloadXLS)--此方法用于连接数据库操作
package com.action;import java.io.IOException; import java.net.URLEncoder; import java.util.List;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.bos.Menuboimpl; import com.vos.Menu;@WebServlet("/DownloadXLS") public class DownloadXLS extends HttpServlet {private static final long serialVersionUID = 1L;public DownloadXLS() {super();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String filename = request.getParameter("filename");request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("application/vnd.ms-excel");//此处我是用了火狐浏览器,这句话非常重要,下面会有介绍// 写入bom头byte[] uft8bom={(byte)0xef,(byte)0xbb,(byte)0xbf};String name=URLEncoder.encode("月度收入报表.csv","utf-8"); //修改http头部,设置输出为附件response.setHeader("Content-Disposition", "attachment;filename="+name);String result="编号,类型,名称,价格,状态,折扣,日期\r\n";Menuboimpl mi=new Menuboimpl();int mmtid=Integer.parseInt(request.getParameter("mmtid"));System.out.println(mmtid);//int mmtid=1;List<Menu> list=null;if(mmtid==0) {list=mi.getMenuAllListAll();}else {list=mi.getMenuAllList(mmtid);}for(Menu item:list) {result+=item.getMid()+","+item.getMmtid()+","+item.getMname()+","+item.getMprice()+","+item.getStatus()+","+item.getMdiscount()+","+item.getMdate()+"\r\n";}result=new String(result.getBytes("utf-8"),"utf-8");//将字节流写入response中response.getOutputStream().write(uft8bom); //写入头部解决乱码问题response.getOutputStream().write(result.getBytes("utf-8"));response.flushBuffer();response.getOutputStream().flush();}}
获取数据的来源大家应该都会了
上面的那句话不同浏览器可能会有不同
按照内容类型排列的 Mime 类型列表
类型/子类型 | 扩展名 |
---|---|
application/envoy | evy |
application/fractals | fif |
application/futuresplash | spl |
application/hta | hta |
application/internet-property-stream | acx |
application/mac-binhex40 | hqx |
application/msword | doc |
application/msword | dot |
application/octet-stream | * |
application/octet-stream | bin |
application/octet-stream | class |
application/octet-stream | dms |
application/octet-stream | exe |
application/octet-stream | lha |
application/octet-stream | lzh |
application/oda | oda |
application/olescript | axs |
application/pdf | |
application/pics-rules | prf |
application/pkcs10 | p10 |
application/pkix-crl | crl |
application/postscript | ai |
application/postscript | eps |
application/postscript | ps |
application/rtf | rtf |
application/set-payment-initiation | setpay |
application/set-registration-initiation | setreg |
application/vnd.ms-excel | xla |
application/vnd.ms-excel | xlc |
application/vnd.ms-excel | xlm |
application/vnd.ms-excel | xls |
application/vnd.ms-excel | xlt |
application/vnd.ms-excel | xlw |
application/vnd.ms-outlook | msg |
application/vnd.ms-pkicertstore | sst |
application/vnd.ms-pkiseccat | cat |
application/vnd.ms-pkistl | stl |
application/vnd.ms-powerpoint | pot |
application/vnd.ms-powerpoint | pps |
application/vnd.ms-powerpoint | ppt |
application/vnd.ms-project | mpp |
application/vnd.ms-works | wcm |
application/vnd.ms-works | wdb |
application/vnd.ms-works | wks |
application/vnd.ms-works | wps |
application/winhlp | hlp |
application/x-bcpio | bcpio |
application/x-cdf | cdf |
application/x-compress | z |
application/x-compressed | tgz |
application/x-cpio | cpio |
application/x-csh | csh |
application/x-director | dcr |
application/x-director | dir |
application/x-director | dxr |
application/x-dvi | dvi |
application/x-gtar | gtar |
application/x-gzip | gz |
application/x-hdf | hdf |
application/x-internet-signup | ins |
application/x-internet-signup | isp |
application/x-iphone | iii |
application/x-javascript | js |
application/x-latex | latex |
application/x-msaccess | mdb |
application/x-mscardfile | crd |
application/x-msclip | clp |
application/x-msdownload | dll |
application/x-msmediaview | m13 |
application/x-msmediaview | m14 |
application/x-msmediaview | mvb |
application/x-msmetafile | wmf |
application/x-msmoney | mny |
application/x-mspublisher | pub |
application/x-msschedule | scd |
application/x-msterminal | trm |
application/x-mswrite | wri |
application/x-netcdf | cdf |
application/x-netcdf | nc |
application/x-perfmon | pma |
application/x-perfmon | pmc |
application/x-perfmon | pml |
application/x-perfmon | pmr |
application/x-perfmon | pmw |
application/x-pkcs12 | p12 |
application/x-pkcs12 | pfx |
application/x-pkcs7-certificates | p7b |
application/x-pkcs7-certificates | spc |
application/x-pkcs7-certreqresp | p7r |
application/x-pkcs7-mime | p7c |
application/x-pkcs7-mime | p7m |
application/x-pkcs7-signature | p7s |
application/x-sh | sh |
application/x-shar | shar |
application/x-shockwave-flash | swf |
application/x-stuffit | sit |
application/x-sv4cpio | sv4cpio |
application/x-sv4crc | sv4crc |
application/x-tar | tar |
application/x-tcl | tcl |
application/x-tex | tex |
application/x-texinfo | texi |
application/x-texinfo | texinfo |
application/x-troff | roff |
application/x-troff | t |
application/x-troff | tr |
application/x-troff-man | man |
application/x-troff-me | me |
application/x-troff-ms | ms |
application/x-ustar | ustar |
application/x-wais-source | src |
application/x-x509-ca-cert | cer |
application/x-x509-ca-cert | crt |
application/x-x509-ca-cert | der |
application/ynd.ms-pkipko | pko |
application/zip | zip |
audio/basic | au |
audio/basic | snd |
audio/mid | mid |
audio/mid | rmi |
audio/mpeg | mp3 |
audio/x-aiff | aif |
audio/x-aiff | aifc |
audio/x-aiff | aiff |
audio/x-mpegurl | m3u |
audio/x-pn-realaudio | ra |
audio/x-pn-realaudio | ram |
audio/x-wav | wav |
image/bmp | bmp |
image/cis-cod | cod |
image/gif | gif |
image/ief | ief |
image/jpeg | jpe |
image/jpeg | jpeg |
image/jpeg | jpg |
image/pipeg | jfif |
image/svg+xml | svg |
image/tiff | tif |
image/tiff | tiff |
image/x-cmu-raster | ras |
image/x-cmx | cmx |
image/x-icon | ico |
image/x-portable-anymap | pnm |
image/x-portable-bitmap | pbm |
image/x-portable-graymap | pgm |
image/x-portable-pixmap | ppm |
image/x-rgb | rgb |
image/x-xbitmap | xbm |
image/x-xpixmap | xpm |
image/x-xwindowdump | xwd |
message/rfc822 | mht |
message/rfc822 | mhtml |
message/rfc822 | nws |
text/css | css |
text/h323 | 323 |
text/html | htm |
text/html | html |
text/html | stm |
text/iuls | uls |
text/plain | bas |
text/plain | c |
text/plain | h |
text/plain | txt |
text/richtext | rtx |
text/scriptlet | sct |
text/tab-separated-values | tsv |
text/webviewhtml | htt |
text/x-component | htc |
text/x-setext | etx |
text/x-vcard | vcf |
video/mpeg | mp2 |
video/mpeg | mpa |
video/mpeg | mpe |
video/mpeg | mpeg |
video/mpeg | mpg |
video/mpeg | mpv2 |
video/quicktime | mov |
video/quicktime | qt |
video/x-la-asf | lsf |
video/x-la-asf | lsx |
video/x-ms-asf | asf |
video/x-ms-asf | asr |
video/x-ms-asf | asx |
video/x-msvideo | avi |
video/x-sgi-movie | movie |
x-world/x-vrml | flr |
x-world/x-vrml | vrml |
x-world/x-vrml | wrl |
x-world/x-vrml | wrz |
x-world/x-vrml | xaf |
x-world/x-vrml |
Q3:Excel导出的第二种方式
此方法需要导入几个架包,需要的联系我,我把压缩包发给你
具体是哪一个我也不太清楚,所以我就全部导入了
--第一个类(Util),这个类用余测试数据,没有数据库连接
package ExcelUtil;import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.junit.Test;public class Util {public static void main(String[] args) throws Exception {//writIntoExcel(); testReadExcel();}public static void writIntoExcel(){/*** 注意这只是07版本以前的做法对应的excel文件的后缀名为.xls* 07版本和07版本以后的做法excel文件的后缀名为.xlsx*///创建新工作簿HSSFWorkbook workbook = new HSSFWorkbook();//新建工作表HSSFSheet sheet = workbook.createSheet("hello");//创建行,行号作为参数传递给createRow()方法,第一行从0开始计算HSSFRow row = sheet.createRow(0);//创建单元格,row已经确定了行号,列号作为参数传递给createCell(),第一列从0开始计算HSSFCell cell = row.createCell(2);//设置单元格的值,即C1的值(第一行,第三列)cell.setCellValue("hello china");//输出到磁盘中 FileOutputStream fos;try {fos = new FileOutputStream(new File("D:11.xls"));workbook.write(fos);workbook.close();fos.close();System.out.println("写入成功!");} catch (FileNotFoundException e) {// TODO Auto-generated catch block e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}}@Testpublic static void testReadExcel() throws Exception{//创建输入流FileInputStream fis = new FileInputStream(new File("D:11.xls"));//通过构造函数传参HSSFWorkbook workbook = new HSSFWorkbook(fis);//获取工作表HSSFSheet sheet = workbook.getSheetAt(0);//获取行,行号作为参数传递给getRow方法,第一行从0开始计算HSSFRow row = sheet.getRow(0);//获取单元格,row已经确定了行号,列号作为参数传递给getCell,第一列从0开始计算HSSFCell cell = row.getCell(2);//设置单元格的值,即C1的值(第一行,第三列)String cellValue = cell.getStringCellValue();System.out.println("第一行第三列的值是"+cellValue);workbook.close();fis.close();} }
--第二个类(ExcelControl),这个类可以连接数据库
package ExcelUtil; import java.io.FileOutputStream; import java.util.List;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.HorizontalAlignment;import dao.UinfoDao; import vo.uinfo;public class ExcelControl {/** * @功能:手工构建一个简单格式的Excel */ /*private static List<uinfo> getMember() throws Exception { List list = new ArrayList(); SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd"); //javabean 实体类uinfo user1 = new uinfo(1,"1998-05-13","男","广东韶关"); uinfo user2 = new uinfo(2,"1999-10-13","女","广东珠海"); uinfo user3 = new uinfo(3,"2000-07-13","男","广东广州"); list.add(user1); list.add(user2); list.add(user3); return list; } */ private static UinfoDao uinfodao=new UinfoDao();public static List<uinfo> getMember(){List<uinfo>list=uinfodao.getAllUinfo();return list;}public static void main(String[] args) throws Exception { // 第一步,创建一个webbook,对应一个Excel文件 HSSFWorkbook wb = new HSSFWorkbook(); // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheetHSSFSheet sheet = wb.createSheet("信息表一"); // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short HSSFRow row = sheet.createRow((int) 0); // 第四步,创建单元格,并设置值表头 设置表头居中 HSSFCellStyle style = wb.createCellStyle(); style.setAlignment(HorizontalAlignment.CENTER);// 创建一个居中格式 HSSFCell cell = row.createCell((short) 0); cell.setCellValue("编号"); cell.setCellStyle(style); cell = row.createCell((short) 1); cell.setCellValue("出生日期"); cell.setCellStyle(style); cell = row.createCell((short) 2); cell.setCellValue("性别"); cell.setCellStyle(style); cell = row.createCell((short) 3); cell.setCellValue("籍贯");cell.setCellStyle(style); // 第五步,写入实体数据 实际应用中这些数据从数据库得到, List list = ExcelControl.getMember(); for (int i = 0; i < list.size(); i++) { row = sheet.createRow((int) i + 1); uinfo info = (uinfo) list.get(i); // 第四步,创建单元格,并设置值 row.createCell((short) 0).setCellValue((double) info.getUid()); row.createCell((short) 1).setCellValue(info.getUsex()); row.createCell((short) 2).setCellValue((String)info.getUbirthday()); row.createCell((short) 3).setCellValue(info.getUaddress()); //cell.setCellValue(new SimpleDateFormat("yyyy-mm-dd").format(info.getUaddress())); } // 第六步,将文件存到指定位置 try { FileOutputStream fout = new FileOutputStream("C:\\Users\\one\\Desktop\\Members.xls"); wb.write(fout); fout.close(); System.out.println("写入成功!");} catch (Exception e) { e.printStackTrace(); } } }
--上面从数据库读取文件就需要各位自己弄了,大家把代码好好看看就明白了
转载于:https://www.cnblogs.com/zywds/p/9362310.html
下载图片,文档,excel导入导出相关推荐
- hutool导出excel大数据_HuTool工具类使用之Excel文档的导入导出
HuTool工具类使用之Excel文档的导入导出 前言 在日常的工作开发中,Excel的导入和导出是必不可少的,如果自己写相应的导入导出方法,会显得十分繁琐,本文采用Hutool工具类实现的Excel ...
- hutool 自定义excel_HuTool工具类使用之Excel文档的导入导出
HuTool工具类使用之Excel文档的导入导出 前言 在日常的工作开发中,Excel的导入和导出是必不可少的,如果自己写相应的导入导出方法,会显得十分繁琐,本文采用Hutool工具类实现的Excel ...
- python爬虫系列之下载在线文档Excel(腾讯)
python爬虫系列之腾讯文档Excel数据 一.简介 二.实现步骤 1. 数据准备 2. 获取当前用户nowUserIndex 3.创建导出任务 4. 检查数据准备进度,并下载 三.完整代码 四.效 ...
- java实现excel导入导出,对象图片读取,上传七牛云
java实现excel导入导出以及解决方案 因为公司业务需求,要完成针对表格的导入导出,excel这里使用MultipartFile类接收 ,下面是部分关键代码,希望有所帮助 //获取excel文件的 ...
- 百度编辑器导入word插件,支持带图片文档导入
Laravel.thinkPHP框架需要先安装PHPword,需要用PHPword扩展将word转化成html.该插件主要由两部分组成:编辑器上传word插件和文档转换功能代码,最重要的是文档转换代码 ...
- vue下载xlsx文档流(导出功能)
一.记录一次前端下载xlsx文档流: 思路: 1. 调用接口接受后台返回的文档流资源, 2.通过内置对象Blob构造器进行解析得到链接地址 3.通过a标签的下载功能得到资源 说下中间踩得坑, 首先项目 ...
- 关于java下载Word文档图片显示不全的问题
关于java 从FTP下载Word文档图片显示不全的问题 最近想实现这样一个功能,从ftp服务器获取word文档下载下来,但是出现了一下问题: 本地启动的tomcat,可以下载word,图片显示正常: ...
- ArcGIS arcpy代码工具——数据驱动工具批量导出MXD文档并同步导出图片
ArcGIS arcpy代码工具--数据驱动工具批量导出MXD文档并同步导出图片 功能说明: 1 准备工作 设置数据驱动页面 页面范围设置 保存MXD文档 2 代码分段 (1)设定基础数据 (2)调用 ...
- easyexcel 设置标题_EasyExcel,让 excel 导入导出更加简单
做积极的人,而不是积极废人! 来源:jianshu.com/p/8f3defdc76d4EasyExcelGitHub上的官方说明快速开始maven仓库地址导入导出总结 EasyExcel 在做exc ...
- Java操作百万数据量Excel导入导出工具类(程序代码教程)
Java操作百万数据量Excel导入导出工具类(程序代码教程): # 功能实现1.自定义导入数据格式,支持配置时间.小数点类型(支持单/多sheet)(2种方式:本地文件路径导入(只支持xls.xls ...
最新文章
- 当统计信息不准确时,CBO可能产生错误的执行计划,并在10053 trace中找到CBO出错的位置示例...
- 读文件计算方法执行时间的实例
- python—unittest—数据驱动详细讲解(ddt)
- JDK13的新特性:AppCDS详解
- 如何在Kubernetes集群动态使用 NAS 持久卷 1
- 累加求和a+aa+aaa+aa…a_过半深圳券商评级跃升4家维持在AA级
- UVA12542 LA6149 Prime Substring【筛选法+贪心】
- ubuntu 卸载python_如何在各种环境下正确安装python——Linux
- 使用参比溶液的作用是_电导仪使用步骤
- 调用大汉三通短信接口,很详细
- 适合中小企业发展的内网即时通讯软件应该具备什么
- 信捷PLC跟西门子700IE通信
- 如何提升售后盈利能力
- 尼古拉斯·卡尔:IT发兵“云计算”
- wetool企业微信营销管理系统开发
- Verilog纠错记录
- 删除服务残留注册表_强制卸载软件程序、清理注册表的好工具
- 王晓昀-PowerDesigner与模型驱动开发-UMLChina讲座-音频和幻灯
- 测试用例支持思维导图编辑模式,MeterSphere开源持续测试平台v1.8.0发布丨Release Notes
- appium知识总结