struts.xml
<action name="action_*" method="{1}" class="Action">
<result name="toDownloadExcle" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">filename="${fileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>
如果输出名字fileName中存在汉字,需要转码
public String getFileName() {
try {
fileName= new String(fileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return fileName;
}
action
public String mainSearchExport() throws Exception {
// 系统生成文件的名称
fileName = "fileName"
+ new SimpleDateFormat("yyyy-MM-dd").format(new Date(System
.currentTimeMillis())) + ".xls";
executeExport(fileName, titles);
return "toDownloadExcle";
}
/**
* 执行excel导出
*
* @param fileName
* @param titles
* @throws Exception
*/
public void executeExport(String fileName, String[] titles)
throws Exception {
inputStream = eo.writeToExcle(titles, data);
// 下载文件的名称
this.fileName = new String(fileName.getBytes(), "ISO-8859-1");
}
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class ExcelOperate {
/**
* 将数据写入excle文件
* @param titles 第一行标题
* @param data 数据列表
* @throws IOException
* @throws RowsExceededException
* @throws WriteException
*/
public InputStream writeToExcle(String[] titles, List data) throws IOException, RowsExceededException, WriteException {
ByteArrayOutputStream os = new ByteArrayOutputStream();
WritableWorkbook book = Workbook.createWorkbook(os);
WritableSheet sheet = book.createSheet("Sheet1", 0);
int titleLength = titles.length;
if (titles != null && titleLength > 0) {
for (int i=0; i < titleLength; i++) {
String title = titles[i];
Label label = new Label(i, 0, title);
sheet.addCell(label);
sheet.setColumnView(i, 20);
}
}
if (data != null && data.size() > 0 ) {
int rowsNum = 1;
int colsNum = 0;
for (int j=0; j<data.size(); j++) {
String obj = data.get(j) + "";
if (j > 0 && j%titleLength==0) {
rowsNum++;
colsNum = 0;
}
Label label = new Label(colsNum++, rowsNum, obj);
sheet.addCell(label);
}
}
book.write();
book.close();
return new ByteArrayInputStream(os.toByteArray());
}
}
分享到:
相关推荐
java利用jxl生成excel文件,代码直接导入就可以跑(修改自己的生成的ecxel地址)
NULL 博文链接:https://heisetoufa.iteye.com/blog/1932093
完整的导出excel了,非常好的代码,看看不吃亏,完整的代码!
jxl模版生成excel,采用类似EL表达式的方式生成模版
利用jxl操作excel文件,提取exce文件数据生成txt文件。
NULL 博文链接:https://chaoyi.iteye.com/blog/2174164
使用jxl生成excel的通用方法,参数List<?>数据,LinkedHashMap,String>实体类属性名和中文列名的键值对
poi jxl 生成EXCEL 报表 POI 用的JAR poi-3.6-20091214.jar jxl 用到的jar jxl-2.6.jar
完整的struts2+jxl文件上传!很好!
本文档详细介绍了struts2整合apache的jxl导入导出excel表格的方法。包括代码,可以直接使用。
java中使用jxl打印excel报表,java中使用jxl打印excel报表,java中使用jxl打印excel报表
jxl操作excel文件示例,对于jxl的使用给出一个简单的示例,帮助大家快速入门
用jxl读写excel数据,输出图片到excel
自己封装的方法,调用 XlHelper.getXl(List<?> voList , Object head , OutputStream ops)方法,直接返回需要的excel,而不需要再去写jxl的方法。第一个参数voList 是excel里的内容,第二个参数head是excel表头。第...
struts2导出excel java 导出excel: JXL_excel: 可以直接在elipse下运行的例子 可以直接导出excel文件(包含所需的jar包) CSharpJExcel: 是JXL的官方下载的 包括详细的文档 和jar包
jxl是对excel强有力的操纵工具,它具有丰富的API可以满足对excel的各种开发需要。
一个简单的struts2框架,使用poi和jxl由前台向excel表中添加数据的一个小程序源码,下载下来部署到服务器就能使用,execl的路径在action中修改成你的路径就能使用了
JXL操作EXCEL 数据库导出EXCEL相关文件一些详细资料
操作Excel文件(读取和生成)jxl和poi 详细实例
学习使用JXL读写EXCEL文件, 学习使用JXL读写EXCEL文件。