JSP项目中,Struts2用的jxl.jar包,利用Excel模板导出Excel出错。

JSP项目中,Struts2用的jxl.jar包,利用Excel模板导出Excel,我没有写数据,打开导出的Excel后总是提示“文件错误。可能某些数字格式已丢失。"代码... JSP项目中,Struts2用的jxl.jar包,利用Excel模板导出Excel,我没有写数据,打开导出的Excel后总是提示“文件错误。可能某些数字格式已丢失。"

代码:
<action name="exportTab1" method="exportTab1" class="xinstru.realname.web.actions.TabExportExcelAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;fileName=${fileName}</param>
<param name="bufferSize">4096</param>
</result>
</action>

public InputStream getInputStream() throws Exception {
File file = new File(fileName);
InputStream stream = new BufferedInputStream(new FileInputStream(file));
FileUtils.deleteQuietly(file);
return stream;
}

public String exportTab1() {
TabExportExcel tabExportExcel = new TabExportExcel();
fileName = tabExportExcel.exportTab(type, distName, list, startTime, endTime);
return SUCCESS;
}

package xinstru.web.util;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.List;

import jxl.Workbook;
import jxl.format.CellFormat;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import xinstru.ejb.utilities.Utility;
import xinstru.web.xls.BaseExcel;

public class TabExportExcel extends BaseExcel {
public String exportTab(int type, String distName, List<Object[]> list, String startTime, String endTime) {
String path = "";
try {
// 模板excel文件
File sourceFile = new File(getTmpPath() + "/tab1.xls");
// 目标文件,在模板中填充数据并生成
path = getTmpPath() + "/" + getExcelName();
File targetFile = new File(path);
// 源文件读入
Workbook template = Workbook.getWorkbook(sourceFile);
if (targetFile.exists())
targetFile.delete();
// 目标文件先引入template中的内容,并将以targetFile导出
WritableWorkbook target = Workbook.createWorkbook(targetFile, template);

// 创建一个工作簿
WritableSheet ws = target.getSheet(0);
// 关闭文件
target.write();
target.close();
} catch (Exception ex) {
ex.printStackTrace();
}
return path;
}
}
展开
 我来答
爱吃溜肥肠
2014-09-15 · TA获得超过627个赞
知道小有建树答主
回答量:326
采纳率:50%
帮助的人:219万
展开全部
我今天刚解决这个问题,是Excel模版的问题;你的项目上,原有Excel模版是用哪个版本的Excel创建的,你就还用那个版本的Excel创建新的Excel模版就可以了.
840129536
2014-09-11 · TA获得超过220个赞
知道小有建树答主
回答量:302
采纳率:100%
帮助的人:222万
展开全部
流的关闭放到finaly 里面去呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
forGKH
2014-09-11 · TA获得超过209个赞
知道小有建树答主
回答量:342
采纳率:100%
帮助的人:188万
展开全部
是不是到处的太多了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
f2316056859
2014-09-15 · TA获得超过121个赞
知道小有建树答主
回答量:124
采纳率:100%
帮助的人:60.2万
展开全部
留下邮箱,我发个例子给你
追问

谢谢!

追答
已发,注意查收。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式