jsp导出Excel,Word文件几种方法

1.直接输出table格式

<%@ page language="java" pageEncoding="GBK"%><%response.setHeader("Content-disposition","attachment; filename=exdata.xls");%>

<table id="PrintA" border=1>
  <tr class="line-odd">
        <td align="right">资助项目名称:</td><td align="left">资助项目名称
        </td>
      </tr>
  <tr class="line-even" >
        <td align="right">流水号:</td><td align="left">流水号
        </td>
    </tr>
    <tr class="line-odd" >
        <td align="right">资助编号:</td><td align="left">
        资助编号

         </td>
    </tr>

</table>

注意:乱码问题,页面保存为utf-8格式

编码格式转换

String s="";

 s=new   String(s.getBytes( "gb2312 "), "iso-8859-1 ")

2. 利用jxl生成excel文件

<%@ page language="java" pageEncoding="GBK"%>
<%@page import="javax.servlet.ServletOutputStream"%>
<%@page import="jxl.*"%>
<%@page import="jxl.write.*"%>

<%

  response.setContentType("application/download");
  response.setHeader("Content-Disposition","attachment;filename=totalExcel.xls");
  ServletOutputStream sos = response.getOutputStream();
  WritableWorkbook wwb=null;

WritableCellFormat  contentFromart =   new   WritableCellFormat(NumberFormats.TEXT);

  wwb = Workbook.createWorkbook(sos);
  WritableSheet ws = wwb.createSheet("sheet1", 0);
  WritableCellFormat cellFormat=new WritableCellFormat();  //换行功能
  cellFormat.setAlignment(jxl.format.Alignment.LEFT);
  cellFormat.setWrap(true);
   Label lab = new Label(0, 0, "序号");
   ws.addCell(lab);
   lab = new Label(1, 0, "流水号",contentFromart);//将 数字字符串放入lable
   ws.addCell(lab);
   lab = new Label(2, 0, "项目编号");
   ws.addCell(lab);
   lab = new Label(3, 0, "资助项目名");
   ws.addCell(lab);
   lab = new Label(4, 0, "项目开始日期");
   ws.addCell(lab);
   lab = new Label(5, 0, "金额");
   ws.addCell(lab);
   lab = new Label(6, 0, "负责人");
   ws.addCell(lab);
   lab = new Label(7, 0, "填表人");
   ws.addCell(lab);
   lab = new Label(8, 0, "资助单位");
   ws.addCell(lab);

   wwb.write();
   wwb.close();
   sos.flush();
   sos.close();
   out.clear();
   out = pageContext.pushBody();

%>

3.js 导出到excel(要求服务器装office)。因为用到了Excel.Application 控件,还得将电脑IE的安全级别设置降低。 否则报“Automation 服务器不能创建对象”错误。

方法一:
function AllAreaExcel(tableid) {//整个表格拷贝到EXCEL中
    var PrintA= document.getElementById(tableid);
    var oXL = new ActiveXObject("Excel.Application");
    //创建AX对象excel
    var oWB = oXL.Workbooks.Add();
    //获取workbook对象 
    var oSheet = oWB.ActiveSheet;
    //激活当前sheet
    var sel = document.body.createTextRange();
    sel.moveToElementText(PrintA);
    //把表格中的内容移到TextRange中
    sel.select();
    //全选TextRange中内容
    sel.execCommand("Copy");
    //复制TextRange中内容 
    oSheet.Paste();
    //粘贴到活动的EXCEL中      
    oXL.Visible = true;
    //设置excel可见属性
}
 //指定页面区域“单元格”内容导入Excel
 function CellAreaExcel(tableid)
 {

 var PrintA= document.getElementById(tableid); 
 var oXL = new ActiveXObject("Excel.Application");
 var oWB = oXL.Workbooks.Add();
 var oSheet = oWB.ActiveSheet;
 var Lenr = PrintA.rows.length;
 for (i=0;i<Lenr;i++)
 {
 var Lenc = PrintA.rows(i).cells.length;
 for (j=0;j<Lenc;j++)
 {
 oSheet.Cells(i+1,j+1).value = PrintA.rows(i).cells(j).innerText;
 }
 }
 oXL.Visible = true;
 }

4.jsp导出到word

<%@ page language="java" pageEncoding="GBK"%><%@pagecontentType="application/vnd.ms-word;charset=gbk"%><%response.setHeader("Content-disposition","attachment; filename=exdata.doc");%>

<table id="PrintA" border=1>
  <tr class="line-odd">
        <td align="right">资助项目名称:</td><td align="left">资助项目名称
        </td>
      </tr>
  <tr class="line-even" >
        <td align="right">流水号:</td><td align="left">流水号
        </td>
    </tr>
    <tr class="line-odd" >
        <td align="right">资助编号:</td><td align="left">
        资助编号

         </td>
    </tr>

</table>

5.js导出到word

 //指定页面区域内容导入Word
 function AllAreaWord(tableid)
 {

 var PrintA= document.getElementById(tableid); 
 var oWD = new ActiveXObject("Word.Application");
 var oDC = oWD.Documents.Add("",0,1);
 var oRange =oDC.Range(0,1);
 var sel = document.body.createTextRange();
 sel.moveToElementText(PrintA);
 sel.select();
 sel.execCommand("Copy");
 oRange.Paste();
 oWD.Application.Visible = true;
 }

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值