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 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导入导出相关推荐

  1. hutool导出excel大数据_HuTool工具类使用之Excel文档的导入导出

    HuTool工具类使用之Excel文档的导入导出 前言 在日常的工作开发中,Excel的导入和导出是必不可少的,如果自己写相应的导入导出方法,会显得十分繁琐,本文采用Hutool工具类实现的Excel ...

  2. hutool 自定义excel_HuTool工具类使用之Excel文档的导入导出

    HuTool工具类使用之Excel文档的导入导出 前言 在日常的工作开发中,Excel的导入和导出是必不可少的,如果自己写相应的导入导出方法,会显得十分繁琐,本文采用Hutool工具类实现的Excel ...

  3. python爬虫系列之下载在线文档Excel(腾讯)

    python爬虫系列之腾讯文档Excel数据 一.简介 二.实现步骤 1. 数据准备 2. 获取当前用户nowUserIndex 3.创建导出任务 4. 检查数据准备进度,并下载 三.完整代码 四.效 ...

  4. java实现excel导入导出,对象图片读取,上传七牛云

    java实现excel导入导出以及解决方案 因为公司业务需求,要完成针对表格的导入导出,excel这里使用MultipartFile类接收 ,下面是部分关键代码,希望有所帮助 //获取excel文件的 ...

  5. 百度编辑器导入word插件,支持带图片文档导入

    Laravel.thinkPHP框架需要先安装PHPword,需要用PHPword扩展将word转化成html.该插件主要由两部分组成:编辑器上传word插件和文档转换功能代码,最重要的是文档转换代码 ...

  6. vue下载xlsx文档流(导出功能)

    一.记录一次前端下载xlsx文档流: 思路: 1. 调用接口接受后台返回的文档流资源, 2.通过内置对象Blob构造器进行解析得到链接地址 3.通过a标签的下载功能得到资源 说下中间踩得坑, 首先项目 ...

  7. 关于java下载Word文档图片显示不全的问题

    关于java 从FTP下载Word文档图片显示不全的问题 最近想实现这样一个功能,从ftp服务器获取word文档下载下来,但是出现了一下问题: 本地启动的tomcat,可以下载word,图片显示正常: ...

  8. ArcGIS arcpy代码工具——数据驱动工具批量导出MXD文档并同步导出图片

    ArcGIS arcpy代码工具--数据驱动工具批量导出MXD文档并同步导出图片 功能说明: 1 准备工作 设置数据驱动页面 页面范围设置 保存MXD文档 2 代码分段 (1)设定基础数据 (2)调用 ...

  9. easyexcel 设置标题_EasyExcel,让 excel 导入导出更加简单

    做积极的人,而不是积极废人! 来源:jianshu.com/p/8f3defdc76d4EasyExcelGitHub上的官方说明快速开始maven仓库地址导入导出总结 EasyExcel 在做exc ...

  10. Java操作百万数据量Excel导入导出工具类(程序代码教程)

    Java操作百万数据量Excel导入导出工具类(程序代码教程): # 功能实现1.自定义导入数据格式,支持配置时间.小数点类型(支持单/多sheet)(2种方式:本地文件路径导入(只支持xls.xls ...

最新文章

  1. 当统计信息不准确时,CBO可能产生错误的执行计划,并在10053 trace中找到CBO出错的位置示例...
  2. 读文件计算方法执行时间的实例
  3. python—unittest—数据驱动详细讲解(ddt)
  4. JDK13的新特性:AppCDS详解
  5. 如何在Kubernetes集群动态使用 NAS 持久卷 1
  6. 累加求和a+aa+aaa+aa…a_过半深圳券商评级跃升4家维持在AA级
  7. UVA12542 LA6149 Prime Substring【筛选法+贪心】
  8. ubuntu 卸载python_如何在各种环境下正确安装python——Linux
  9. 使用参比溶液的作用是_电导仪使用步骤
  10. 调用大汉三通短信接口,很详细
  11. 适合中小企业发展的内网即时通讯软件应该具备什么
  12. 信捷PLC跟西门子700IE通信
  13. 如何提升售后盈利能力
  14. 尼古拉斯·卡尔:IT发兵“云计算”
  15. wetool企业微信营销管理系统开发
  16. Verilog纠错记录
  17. 删除服务残留注册表_强制卸载软件程序、清理注册表的好工具
  18. 王晓昀-PowerDesigner与模型驱动开发-UMLChina讲座-音频和幻灯
  19. 测试用例支持思维导图编辑模式,MeterSphere开源持续测试平台v1.8.0发布丨Release Notes
  20. appium知识总结

热门文章

  1. java jstat 命令_Java命令-jstat
  2. 2006年之梦境杀手
  3. 决策树算法ID3算法(Python3实现)
  4. 盛迈坤电商:网店运营规则分享
  5. python123注册-python_注册入口,登录
  6. 在linux系统下怎么下载sra数据,NCBI sra数据下载软件安装
  7. linux下载sra数据库,NCBI-SRA数据下载的3种方法
  8. HTML5 canvas画布元素 制作 动态花朵动画
  9. 数组去重(3种方法)
  10. 蛋花花给前端初学者的三点建议