今天准备做报表但找了一些网上的资料也比较零碎。今天特意整理一下。现在开始吧
需要的文件有DateUtil.java ,里面有个方法要调用。
/**
     * 获取指定格式的当前日期字符串
     * @param patten 格式化字符串
     * @return
     */
    public static String getDate(String patten) {
        SimpleDateFormat sf = new SimpleDateFormat(patten);
        return sf.format(new Date());
    }
public static String getTime() {
   
      
        return DateUtil.getDate("yyyyMMddhhmmss");
    }
然后就是我的exporting.jsp文件

<%@ page contentType="text/html; charset=gb2312" language="java"  errorPage="" %>

<%@ page import="com.kysc.kyjh.plotManage.comm.DateUtil"%>
<jsp:useBean id="excel" scope="request" class="com.kysc.kyjh.planManage.action.InsertPlanInfoAction"/>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'exporting.jsp' starting page</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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>
 
  <body>
   <%
   String title="信息表";
   String timeName=DateUtil.getTime();
   response.reset();
//  response.setContentType("application/vnd.ms-excel");
//excel.export(response.getOutputStream());

if(excel.export(request,application,timeName)){

%>
    <input type="hidden" name="filename" id="filename" value="${pageContext.request.contextPath}/<%=timeName%>.xls"/>
   
   
    <script language="JavaScript" type="text/javascript">

document.location=document.getElementById("filename").value;

</script>
   
    <% }
else{

%>
<script language="JavaScript" type="text/javascript">

alert("导出失败");

history.go(-1);

document.location=

</script>

<%} %>

</body>
</html>
然后是我的action文件InsertPlanInfoAction.java
/**
*
*/
package com.kysc.kyjh.planManage.action;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;

import com.kysc.kyjh.planManage.DAO.InsertPlanInfoDAO;
import com.kysc.kyjh.planManage.DAO.SelectPlanInfoDAO;
import com.kysc.kyjh.planManage.DAO.UpdatePlanInfoDAO;
import com.kysc.kyjh.planManage.form.PlanForm;
import com.kysc.kyjh.plotManage.DAO.InsertPlotInfoDAO;
import com.kysc.kyjh.plotManage.DAO.SelectPlotInfoDAO;
import com.kysc.kyjh.plotManage.comm.DateUtil;
import com.kysc.kyjh.plotManage.comm.StringUtil;
import com.kysc.kyjh.plotManage.form.DepartUserForm;
import com.kysc.kyjh.plotManage.form.PlotForm;
import java.util.*;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

/**
* @author Administrator
*
*/
public class InsertPlanInfoAction extends DispatchAction {
   private Vector content=null;//用于存放所要查询的记录

private ResultSet rs=null;
       private   String [] title={"序号","项目名称","计划名称","项目类型","项目密级","开始时间","结束时间"};
       private String targetFile="";
      
       public Vector getContent(){
       Vector outter=new Vector();
      
       SelectPlanInfoDAO select =new SelectPlanInfoDAO();
   SelectPlotInfoDAO selectplot=new SelectPlotInfoDAO();
     List<PlanForm> plans= select.selectPlanInfo();
   Iterator<PlanForm> it=plans.iterator();
   while(it.hasNext()){
   PlanForm pf=it.next();
   Vector inner=new Vector();
   String sql="select * from kyjh_plot_info where plot_id="+pf.getPlot_id();
   List<PlotForm> list= selectplot.selectPlotInfoByCondition(sql);
  
   if(list.size()!=0){
   PlotForm  plot=list.get(0);
  
   pf.setItem_name(plot.getItem_name());
   pf.setItem_type(plot.getItem_type());
   pf.setItem_secret(plot.getItem_secret());
   pf.setStart_date(plot.getStart_date());
   pf.setEnd_date(plot.getEnd_date());
   inner.add(plot.getItem_name());
   inner.add(pf.getPlan_name());
   inner.add(""+plot.getItem_type());
   inner.add(""+plot.getItem_secret());
   inner.add(plot.getStart_date());
   inner.add(plot.getEnd_date());
  
   outter.add(inner);
   }
  
   }
      
       return outter;
       }
       public boolean export(HttpServletRequest request,ServletContext context,String timename){

targetFile+="/"+timename+".xls";

content=this.getContent();//以向量的形式存放所有的记录

String path=context.getRealPath(targetFile);   
           request.getSession().setAttribute("filepath",path);
           try{
                  Vector inner=null;
                  String value="";//存放在cell中的文本值
                  int num=0;//存放在cell中的数字值
               OutputStream os=new FileOutputStream(path);
               WritableWorkbook workbook=Workbook.createWorkbook(os);//创建工作薄
               WritableSheet worksheet=workbook.createSheet("record",0);//创建第一个工作表,name:工作表名称
               Label label=null;//用于写入文本内容到工作表中去
               jxl.write.Number nmb=null;//用于写入数值到工作表中去
               //开始写入第一行,即标题栏
               for(int i=0;i<title.length;i++){
                      label=new Label(i,0,title[i]);//参数依次代表列数、行数、内容
                      worksheet.addCell(label);//写入单元格
                   }

//开始写入内容
               for(int i=0;i<content.size();i++){
                      inner=(Vector)content.get(i);//获取一条记录
                     
                      label=new Label(0,i+1,""+(i+1));
                      worksheet.addCell(label);
                      for(int j=0;j<inner.size();j++){
                             //一个一个字段的放入excel中去
                                 value=(String)inner.get(j);
                          
                                 label=new Label(j+1,i+1,value);
                                 worksheet.addCell(label);
                   
                          }
                 }                              
                  workbook.write();
            workbook.close();
              }

catch(Exception e){
                  e.printStackTrace();
                  return false;
          }                            
           return true;

}

public void export(OutputStream os){

content=this.getContent();//以向量的形式存放所有的记录

try{

Vector inner=null;

String value="";//存放在cell中的文本值

int num=0;//存放在cell中的数字值

WritableWorkbook workbook=Workbook.createWorkbook(os);//创建工作薄

WritableSheet worksheet=workbook.createSheet("record",0);//创建第一个工作表,name:工作表名称

//WritableSheet worksheet=workbook.createSheet(name,0);//创建第一个工作表,name:工作表名称

Label label=null;//用于写入文本内容到工作表中去

jxl.write.Number nmb=null;//用于写入数值到工作表中去

//开始写入第一行,即标题栏

for(int i=0;i<title.length;i++){

label=new Label(i,0,title[i]);//参数依次代表列数、行数、内容

worksheet.addCell(label);//写入单元格

}

//开始写入内容

for(int i=0;i<content.size();i++){

inner=(Vector)content.get(i);//获取一条记录

for(int j=0;j<inner.size();j++){

//一个一个字段的放入excel中去

if(j==inner.size()-1){//插入的数值

Integer num_=(Integer)inner.get(j);

num=num_.intValue();

nmb=new jxl.write.Number(j,i+1,num);

worksheet.addCell(nmb);

}

else{

value=(String)inner.get(j);

label=new Label(j,i+1,value);

worksheet.addCell(label);

}

}

}

workbook.write();

workbook.close();

}

catch(Exception e){

e.printStackTrace();

//return false;

}

//return true;

}

public ActionForward PlanInfoExportExcel(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {

System.out.println("PlanInfoExportExcel OK");
targetFile+="/"+DateUtil.getTime()+".xls";
String path=request.getRealPath(targetFile);
content=this.getContent();
try{
Vector inner=null;
  String value="";//存放在cell中的文本值

int num=0;//存放在cell中的数字值
           OutputStream os=new FileOutputStream(path);
           WritableWorkbook workbook=Workbook.createWorkbook(os);//创建工作薄
           WritableSheet worksheet=workbook.createSheet("record",0);//创建第一个工作表,name:工作表名称
           Label label=null;//用于写入文本内容到工作表中去
           jxl.write.Number nmb=null;//用于写入数值到工作表中去
           //开始写入第一行,即标题栏
           for(int i=0;i<title.length;i++){
               label=new Label(i,0,title[i]);//参数依次代表列数、行数、内容
               worksheet.addCell(label);//写入单元格
            }
        //开始写入内容
        for(int i=0;i<content.size();i++){
               inner=(Vector)content.get(i);//获取一条记录
               for(int j=0;j<inner.size();j++){
                      //一个一个字段的放入excel中去
                      if(j==inner.size()-1){//插入的数值
                             Integer num_=(Integer)inner.get(j);
                             num=num_.intValue();
                             nmb=new jxl.write.Number(j,i+1,num);
                             worksheet.addCell(nmb);
                     }
                   else{
                          value=(String)inner.get(j);
                          label=new Label(j,i+1,value);
                          worksheet.addCell(label);
                          }                      
                        }
                     }                              
           workbook.write();
           workbook.close();
}catch(Exception e){
System.out.println(e.getMessage());
}

return null;
}
}

导出excel.支持在线打开保存相关推荐

  1. java 在线excel_Java实现最简单的在线打开保存Excel文件

    在项目开发过程中,经常会涉及到生成Excel报表,但往往系统只能通过后台生成Excel报表并保存到服务器上,若想在系统中打开Excel文件并进行编辑保存,有些人可能就没有思路了.因此,为了实现Exce ...

  2. java 在线 excel文件_Java实现最简单的在线打开保存Excel文件 - PageOffice

    Java实现最简单的在线打开保存Excel文件- PageOffice 在项目开发过程中,经常会涉及到生成Excel报表,但往往系统只能通过后台生成Excel报表并保存到服务器上,若想在系统中打开Ex ...

  3. 用PageOffice实现最简单的在线打开保存PPT文件

    在项目开发过程中,有时会涉及到想要打开或编辑一些PPT文件,但通过常用的类库我们很难实现这一目的.因此,为了实现PPT文件的在线打开并保存,我利用了PageOffice开发平台. 以一个最简单的在线打 ...

  4. Java:使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开

    使用POI导出Excel文件后打开文件提示因为文件格式或文件扩展名无效而无法打开 问题 方案 问题 在SpringBoot项目中,使用POI导出查询结果至Excel文件中,成功导出后打开Excel文件 ...

  5. 使用poi导出excel报错-打开文件报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”

    使用poi导出excel报错-打开文件报"Excel 已完成文件级验证和修复.此工作簿的某些部分可能已被修复或丢弃" 1.原本正常使用的Excel导出突然下载文件报错 2.定位时发 ...

  6. esaypoi导出excel后office打开报错

    ** esaypoi导出excel后office打开报错 ** 使用esaypoi导出excel后office打开报错,提示 "Excel 无法打开文件"导出表格 (1).xlsx ...

  7. java swing 导出文件_java swing (一) 导出excel文件并打开

    点击XXX管理系统中的"导出Excel"按钮,然后弹出如上图,点击"保存"以后,该Excel就保存到指定路径,并且打开. 上述的动作,其实不难,主要是打开该文件 ...

  8. html table导出excel 插入图片_前端 Table 用 JS 导出EXCEL(支持大量数据,保留报表格式) - pensive2019...

    最近项目上,需要用到将网页上的table报表导出Excel.原先一直用,面对简单的数结构时只要简单的套用就能导出了,但是table结构相对复杂时,很难在组成一样结构,要花很多时间调:这时就想到在百度上 ...

  9. 解决导出excel表格无法打开的问题

    前后端分离实现导出excel,后端使用easyexcel将数据写入excel表格,然后将其写入到响应流中,关于easyexcel的快速使用可参考文章:JAVA使用easyexcel导出excel 后端 ...

最新文章

  1. java process exit_Java Process.exitValue()中值的含义是什么?
  2. Openwrt WIFI探针开发【一】
  3. 前端 html结合css-1篇
  4. linux setsockopt函数
  5. html网页制作每周食谱,新增食谱.html
  6. Linux input输入子系统demo驱动
  7. 中国邮政支付宝卡通开通流程
  8. oppo鸿蒙系统刷机包下载,OPPO A59st官方固件rom刷机包_OPPO A59st系统升级包下载
  9. 鸿蒙 usb调试,刷机精灵如何打开usb调试模式
  10. es6 语法简单使用
  11. 发生事故单位照常发工资可不可以索要误工费
  12. div,span等标签支持focus/blur事件
  13. Windows Phone周岁背后的喜和忧
  14. 欧几里得算法(除法表达式)
  15. android 开机动画尺寸,手机桌面应用图标和APP启动画面全尺寸
  16. Sumproduct函数的使用方法
  17. WAP/WEB网站建设(转)
  18. ACM比赛经验、刷题记录及模板库总结(更新中)
  19. 100页PPT讲解智能网联汽车技术综述以及通信技术
  20. 机器学习(七)——集成学习:Boosting系列和Bagging系列

热门文章

  1. 珍藏绝版MTV全套 -《最动听的BEYOND
  2. 快手挂小黄车和快手小店有什么区别?如何开通快手小店?
  3. Unity--游戏字幕
  4. 泰坦尼克号乘客生存预测
  5. 看腻了杨幂,热巴,快来抓取上千张美女图片,古装美女看个够
  6. ubuntu18.04关闭输入法浮动窗
  7. linux uart应用开发(ttyS*设备)
  8. 如何让centos7串口数(ttyS*)大于4个
  9. 语义网络,语义网,链接数据和知识图谱
  10. 【Python检测脚本】你知道朋友屏蔽你吗?你知道屏蔽别人的下场吗?(拉黑统统拉黑)