1. 页面:
  2. <form action="${path}/xxx/xxx.do" method="get" >
  3. 表格下载:<input type="submit" value="下载">
  4. </form>

  

  1. @RequestMapping("/download")
  2. public void download(HttpServletRequest request, HttpServletResponse response, HttpSession session)
  3. throws Exception {
  4. ArrayList<String> listTitle = new ArrayList<String>();
  5. listTitle.add("a");
  6. listTitle.add("b");
  7. listTitle.add("c");
  8. listTitle.add("d");
  9. listTitle.add("e");
  10. // 创建表格及其第一行标题栏
  11. HSSFWorkbook wb = new HSSFWorkbook();
  12. HSSFSheet sheet = wb.createSheet("sheet1");
  13. HSSFRow row0 = sheet.createRow(0);
  14. for (int j = 0; j < 5; j++) {// 5列
  15. HSSFCell cell = row0.createCell((short) j);
  16. cell.setCellValue(listTitle.get(j).toString());
  17. }
  18. String maker = SystemUtil.getCureenUser(session);
  19. List<MainfestItem> list = transportService.getlist(maker);
  20. System.out.println(list.size());
  21. // 从第二行输入
  22. for (int i = 1; i <= list.size(); i++) { // 几行
  23. HSSFRow row = sheet.createRow(i);
  24. HSSFCell cell0 = row.createCell((short) 0);// 第n+1个
  25. cell0.setCellValue(list.get(i - 1).getId().toString());
  26. HSSFCell cell1 = row.createCell((short) 1);
  27. cell1.setCellValue(list.get(i - 1).getContainerid().toString());
  28. HSSFCell cell2 = row.createCell((short) 2);
  29. cell2.setCellValue(list.get(i - 1).getIsocode().toString());
  30. }
  31. ByteArrayOutputStream os = new ByteArrayOutputStream();
  32. wb.write(os);
  33. byte[] content = os.toByteArray();
  34. InputStream is = new ByteArrayInputStream(content);
  35. // 设置response参数,可以打开下载页面
  36. response.reset();
  37. response.setContentType("application/vnd.ms-excel;charset=utf-8");
  38. response.setHeader("Content-Disposition",
  39. "attachment;filename=" + new String(("box" + ".xls").getBytes(), "iso-8859-1"));
  40. ServletOutputStream out = response.getOutputStream();
  41. BufferedInputStream bis = null;
  42. BufferedOutputStream bos = null;
  43. try {
  44. bis = new BufferedInputStream(is);
  45. bos = new BufferedOutputStream(out);
  46. byte[] buff = new byte[2048];
  47. int bytesRead;
  48. // Simple read/write loop.
  49. while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
  50. bos.write(buff, 0, bytesRead);
  51. }
  52. } catch (Exception e) {
  53. // TODO: handle exception
  54. e.printStackTrace();
  55. } finally {
  56. if (bis != null)
  57. bis.close();
  58. if (bos != null)
  59. bos.close();
  60. }
  61. }

  

java写简单Excel 首行是目录 然后前台下载的更多相关文章

  1. java生成简单Excel工作薄

    前言: 代码都是建立在实际需求上的,上周做完一个调外部电影券接口的项目,这周产品又要excel表格,大致内容为:券所属影院.图片URL.等信息制作为excel表格,把每次同步过来的数据给他分析. jx ...

  2. 用JAVA写简单的栈

    package com.gailekesi.example.expl_tuple; import javax.naming.NameNotFoundException; import java.awt ...

  3. Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印

    1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) thro ...

  4. java 写 Excel(不生成实体文件,写为流的形式)

    java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...

  5. Java写Excel(不生成实体文件,写为流的形式)

    java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...

  6. Java代码工具箱之解析单行单列简单Excel

    1. 使用开源工具 jxl.jar 2. 功能:解析常规Excel.xls格式测试可行,xlsx未测试.Excel测试格式为常规类似table这种简单布局文件.第一行为标题,后面行为内容.代码 可正确 ...

  7. java导入导出excel常用操作小结及简单示例

    POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook();  //创建一个webbook,对应一个Excel文件 HSSFS ...

  8. 在.txt文件的首行写上.LOG后,后面每次对改文本文件进行编辑后,系统会自动在编辑内容后记录操作时间

    在.txt文件的首行写上.LOG后,后面每次对改文本文件进行编辑后,系统会自动在编辑内容后记录操作时间

  9. Microsoft Excel 标题栏或首行锁定

    Microsoft Excel 标题栏或首行锁定 在进行Excel编辑的时候,希望在浏览的时候,第一行或者第一列能够始终显示. 需要做的是:在Excel中选择 "视图"->& ...

随机推荐

  1. iview-admin打包笔记

    在程序根目录右键打开cmd,输入 npm run build 这时就会进入打包的步骤,打包好之后就会在程序根目录出现一个dist的文件夹,里面有一个index.html文件和另一个dist的文件夹. ...

  2. 无法连接redis问题

    今天加入redis但连接一直报无法获取到连接,看配置 今天加入redis但连接一直报无法获取到连接,看配置 ``` <bean id="redisResources" cla ...

  3. java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?

    在Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity.所有对象的非同步方法都能够在任意时刻被任意线程调用 ...

  4. Mysql导出表结构、表数据

    导出 (cmd)     1.导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)    mysqldump -u root -p dbpass ...

  5. BigDecimal空指针异常——个人应用

    背景: 将数据库统计的数据,封装成了两个BigDecimal,此时要将两个BigDecimal进行运算.其中有一个没有数据的话,会报null(不管null值在前在后) 先上解决: 我把数据库的数据进行 ...

  6. 启动 node 文件时附带参数

    cmd: node app.js hello app.js var args = process.argv; console.log(args);//[ 'C:\\Program Files\\nod ...

  7. 并发基础(十) 线程局部副本ThreadLocal之正解

      本文将介绍ThreadLocal的用法,并且指出大部分人对ThreadLocal 的误区. 先来看一下ThreadLocal的API: 1.构造方法摘要 ThreadLocal(): 创建一个线程 ...

  8. attack source code

    不废话,直接上代码, 先看截图use pictures;

  9. python入门-异常

    1 报错的例子 print(5/0) 2跳过报错的例子 try: print(5/0) except ZeroDivisionError: print("You can't divide b ...

  10. bootstrap file input 多图片上传编辑THINKPHP5

    {layout name="layout" title="文章添加" /} <form id="defaultForm" role=& ...