JXL复制Excel模板,生成了却打不开

FinalKing 2007-12-04 09:12:49
package report;

import java.beans.Beans;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Vector;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.SmartUpload;

import jxl.Workbook;
import jxl.format.BorderLineStyle;
import jxl.write.Border;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

import dabean.DataBean;
import java.sql.*;

public class JxlExcel extends HttpServlet {

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
DataBean dataBean;
private ResultSet rs;
ResultSetMetaData rm;
Statement stm;
int colcount;
public JxlExcel(){
dataBean = null;
rs = null;
rm = null;
colcount = 0;
try
{
dataBean = (DataBean)Beans.instantiate(getClass().getClassLoader(), "dabean.DataBean");
}
catch(Exception exception)
{
exception.printStackTrace();
}
}
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
// /**
// * setContentType设置MIME类型,Acrobat
// * PDF文件为"application/pdf",WORD文件为:"application/msword",
// * EXCEL文件为:"application/vnd.ms-excel"。
// */
// response.setContentType("application/vnd.ms-excel");
// /**
// * setHeader设置打开方式,具体为:inline为在浏览器中打开,attachment单独打开。
// */
response.setHeader("Content-disposition","attachment; filename=test1.xls");
response.setContentType("application/msexcel");
String tablehead = request.getParameter("title");//表头
String fieldvalues = request.getParameter("fieldnames");//显示数据语句
try {
String root_path=getServletContext().getRealPath("/")+"Defaultmodel/";
String url = root_path+"wsaj.xls";//模板位置
String str_head="";
String str_field="";
int rownum=0;
int colnum=0;
Workbook wb = Workbook.getWorkbook(new File(url));
ByteArrayOutputStream targetFile = new ByteArrayOutputStream();
WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);
//处理自动换行、表格样式
WritableCellFormat cellFormat=new WritableCellFormat();
cellFormat.setAlignment(jxl.format.Alignment.LEFT);
cellFormat.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
cellFormat.setWrap(true);
cellFormat.setBorder(Border.ALL, BorderLineStyle.THIN);
WritableSheet wws = wwb.getSheet(0);
stm = dataBean.getStatement();
rs = stm.executeQuery(fieldvalues);
rm = rs.getMetaData();
colcount = rm.getColumnCount();
if(rs.next()){
rownum++;
for(int i = 0; i < colcount;i++)
{
str_field = new String(rs.getString(i + 1).trim().getBytes(), "GB2312");
Label fieldvalue = new Label(i,rownum, str_field);
fieldvalue.setCellFormat(cellFormat);
wws.addCell(fieldvalue);
}
}

wwb.write();
wwb.close();
wb.close();
FileOutputStream fos = new FileOutputStream(root_path+"temp/test1.xls");
targetFile.writeTo(fos);
targetFile.close();
out.flush();
out.close();
//RequestDispatcher requestDispatcher=request.getRequestDispatcher("/jsp/testbean.jsp");
//requestDispatcher.forward(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}

}


我想要生成了 了数据的同时 打开 这个 excel 数据都生成了 ,就是打开的excel是不可读的数据,总之打开了没数据,保存下来也一样,在网上的例子都看了,我不知道哪出了问题!急救阿。。。。。
...全文
542 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
racy2007 2009-01-19
  • 打赏
  • 举报
回复
我今天也遇到了这个问题,谁有解?
FinalKing 2007-12-05
  • 打赏
  • 举报
回复
没人帮帮我么~。。。。。。。。。。。
Sunny319 2007-12-05
  • 打赏
  • 举报
回复
生成了数据的同时打开 这个excel。
在生成文件过程中,这个文件是独占得访问方式。
你在程序生成完了再去看看吧。
内容概要:本文介绍了COSO企业风险管理框架,阐述了企业风险管理的定义、目标、构成要素及其与内部控制的关系。文章指出,企业风险管理是一个由董事会、管理层及其他人员实施的,应用于战略制定并贯穿于企业之中的过程,旨在识别可能影响主体的潜在事项,管理风险以使其在该主体的风险容量之内,并为主体目标的实现提供合理保证。该框架强调了企业风险管理的八大构成要素:内部环境、目标设定、事项识别、风险评估、风险应对、控制活动、信息与沟通、监控。此外,文章还讨论了企业风险管理的局限性,如人为判断失误、成本与效益的权衡、管理层凌驾等。 适合人群:具备一定管理学基础知识,对风险管理有兴趣的学者、企业管理人员、内部审计师及外部审计师。 使用场景及目标:①帮助组织理解并应用企业风险管理框架,以提高组织的风险管理水平;②指导企业如何通过有效的风险管理来实现其战略、经营、报告和合规目标;③为企业提供一套标准化的风险管理语言,促进内外部沟通与合作。 阅读建议:读者应结合实际案例,深入理解每个构成要素的具体应用,同时关注企业风险管理的局限性,以全面把握企业风险管理的本质。此外,建议定期回顾和更新风险管理策略,以适应不断变化的内外部环境。

81,108

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧