jfinal模板指令ext导出excel能实现复杂表头么

jfinal-ext导出excel文件
<a data-traceid="question_detail_above_text_l&&
看jfinal-ext文档中关于PoiRender导出excel文件:
PoiRender.me(data).fileName(&your_file_name.xls&).headers(headers).cellWidth(5000).headerRow(2)
我在项目中应用时,前端发送ajax请求到后台,后台方法走完了但是没有反应,后台无报错,前端无反应。后台方法如下:
public void toExcel(){ List&Signup& list = Signup.sup.find(&select * from &xinshang.signup order by id desc&); PoiRender.me(list).fileName(&test.xls&).headers(&123&).cellWidth(5000).headerRow(2); } &
我想请问下 我在页面用form表单提交后 页面输出{"encoding":"utf-8","devMode":true,"view":null} 是什么原因啊
应该这样写吧~
render(PoiRender.me(list).fileName(&test.xls&).headers(&123&).cellWidth(5000).headerRow(2));
--- 共有 5 条评论 ---
找到原因了,不支持ajax请求
: 没有反应呢。。。
回复 @Wangshengchao : 不是直接就下载了么?
这么写了以后,还是没有反应呢。代码都执行完了,前端页面也不显示。后台无报错。生成的这个excel文件在什么地方呢?Android 数据导出之Excle jxl.jar
很久没写Android代码了。
使用jxl导出excle数据
首先项目得导入jxl.jar
以下是导出方法:
// 导出数据
public void export(ArrayList&Account& list) {
Calendar c = Calendar.getInstance();
String filename = Integer.toString(c.get(Calendar.YEAR))
+ Integer.toString(c.get(Calendar.MONTH + 1))
+ Integer.toString(c.get(Calendar.DAY_OF_MONTH));
int random = (int) (Math.random() * 1000);
WritableWorkbook wwb =
// 首先要使用Workbook类的工厂方法创建一个可写入的工作薄(Workbook)对象
wwb = Workbook.createWorkbook(new File(Environment
.getExternalStorageDirectory()
+ filename
+ random + ".xls"));
} catch (IOException e) {
e.printStackTrace();
if (wwb != null) {
// 创建一个可写入的工作表
// Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置
WritableSheet ws = wwb.createSheet("工作表名称", 0);
// 下面开始添加单元格
String[] topic = { "序号", "金额", "项目", "时间", "支付方式", "商家/支付方", "成员",
"备注", "类别" };
for (int i = 0; i & topic. i++) {
Label labelC = new Label(i, 0, topic[i]);
// 将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
ArrayList&String&
for (int j = 0; j & list.size(); j++) {
account = list.get(j);
li = new ArrayList&String&();
li.add(Integer.toString(account.get_id()));
li.add(Float.toString(account.getMoney()));
li.add(account.getCategory().toString());
li.add(account.getDatetime().toString());
li.add(account.getMethod().toString());
li.add(account.getMerchant().toString());
li.add(account.getMumber().toString());
li.add(account.getDescript().toString());
li.add(account.getWhat().toString());
System.out.println(li.size());
int k = 0;
for (String l : li) {
Label labelC = new Label(k, j + 1, l);
// 将生成的单元格添加到工作表中
ws.addCell(labelC);
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
// 从内存中写入文件中
wwb.write();
// 关闭资源,释放内存
wwb.close();
} catch (IOException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
使用该方法能够对数据进行导出。
Android通过jxl.jar实现对excel的操作
Android/Java使用Jxl解析excel文件
Android 读Excel 精简函数封装利用了jxl.jar
Android中利用jxl组件来操作excel
关于eclipse jar导入以及Android的excel的使用(小白)
没有更多推荐了,Jfinal+POI导出Excel
公司用到了Jfinal框架,关于框架的使用和说明,可以访问:www.jfinal.com。最近老大要我学一下jfinal+poi导出excel,之前没有用过一些和Excel相关的第三方组件,后来了解到操作excel的组件有:JXL和POI。我就使用了后者来操作Excel
用jfinal操作数据库特别爽,因为它不需要像JDBC活在Ibatis一样重复很多配置,它只需要一个数据源的插件就可以把数据的配置搞定(当然为了后期扩展,建议你把配置写到配置文件中,然后读取配置文件)。
具体代码如下体现:
public static void main(String[] args) throws Exception {
// Demo1();
Date d=new Date();
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
String title=dateFormat.format(d);
System.out.println(title);
File file = new File(title+"_统计表"+".xls");
String sql="select id,weijia_role_id,login_name,password,create_date,modify_date,is_locked from weijia_user";
//ider:外部传入一个表头、SQL语句、
String s[] = new String[] { "id", "weijia_role_id", "login_name",
"password", "create_date", "modify_date", "is_locked " };
new test().saveFile(s,sql, file);
//新增一行就累加
private int count = 0;
public void saveFile(String[] s,String sql, File file) {
// 创建工作薄
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
// sheet:一张表的简称
// row:表里的行
// 创建工作薄中的工作表
HSSFSheet hssfSheet = hssfWorkbook.createSheet("test");
HSSFRow row = hssfSheet.createRow(0);
// 创建单元格,设置表头 创建列
HSSFCell cell =
//便利表头
for (int i = 0; i & s. i++) {
//创建传入进来的表头的个数
cell = row.createCell(i);
//表头的值就是传入进来的值
cell.setCellValue(s[i]);
//新增一个行就累加
row = hssfSheet.createRow(++count);
C3p0Plugin c3p0Plugin = new C3p0Plugin("jdbc:mysql://127.0.0.1/weijia",
"root", "123", "com.mysql.jdbc.Driver");
c3p0Plugin.start();
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
arp.addMapping("weijia_user", User.class);
arp.start();
// 得到所有记录 行:列
List&Record& list = Db.find(sql);
Record record =
if (list != null) {
//获取所有的记录 有多少条记录就创建多少行
for (int i = 0; i & list.size(); i++) {
//row = hssfSheet.createRow(++count);
// 得到所有的行 一个record就代表 一行
record = list.get(i);
//在有所有的记录基础之上,便利传入进来的表头,再创建N行
for (int j = 0; j & s. j++) {
cell = row.createCell(j);
//把每一行的记录再次添加到表头下面 如果为空就为 "" 否则就为值
cell.setCellValue(record.get(s[j])==null?"":record.get(s[j]).toString());
FileOutputStream fileOutputStreane = new FileOutputStream(file);
hssfWorkbook.write(fileOutputStreane);
fileOutputStreane.flush();
fileOutputStreane.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
jfinal导出excel表格插件jfinal-ext使用
JFinal学习-Excel导出
jfinal之使用模板导出excel文件
jfinal+poi导出excel
Jfinal导出一万条以上数据
jFinal与POI结合导出excel表格
java利用jfinal框架将查询出来的list导出到Excel
没有更多推荐了,jfinal-ext 关于PoiRender导出excel但是无数据.
<a data-traceid="question_detail_above_text_l&&
使用:jfinal-ext: 3.1.4
jfinal 2.0
代码如下:
&&&&&&&&UserRecord user= getSessionAttr("user");
header={"编号","证件号码","加入时间","驾龄","电话"};
columns={"id","transport_license","create_time","driving_time","phone_number"};
int userid=user.getInt("id");
List&CarinfoRecord& objs= carInfoService.findCarsByUser(userid);
List&Object& data = new ArrayList();
for(int i=0;i&objs.size();i++){
Map&String, Object & map=new HashMap&String, Object&();
map.put(columns[0], objs.get(i).getInt(columns[0]));
map.put(columns[1], objs.get(i).getStr(columns[1]));
map.put(columns[2], objs.get(i).getStr(columns[2]));
map.put(columns[3], objs.get(i).getInt(columns[3]));
map.put(columns[4], objs.get(i).getStr(columns[4]));
System.out.println(map.get(columns[0])+"0");
System.out.println(map.get(columns[1])+"1");
System.out.println(map.get(columns[2])+"2");
System.out.println(map.get(columns[3])+"3");
System.out.println(map.get(columns[4])+"4");
data.add(map);
System.out.println(JSON.toString(objs));
Render poiRender=PoiRender.me(data).fileName("carInfo.xls").headers(header).columns(columns);
render(poiRender);
system.out都有数据在。
报错如下:
[ERROR]-[Thread: qtp]-[com.jfinal.core.ActionHandler.handle()]: /carInfo/carsToExc
java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook
at com.jfinal.ext.render.excel.PoiRender.render(PoiRender.java:57)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:93)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Workbook
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:430)
at com.jfinal.server.JFinalClassLoader.loadClass(JFinalClassLoader.java:53)
... 26 more
[ERROR]-[Thread: qtp]-[com.jfinal.core.JFinalFilter.doFilter()]: /carInfo/carsToExc
java.lang.IllegalStateException: STREAM
at org.eclipse.jetty.server.Response.getWriter(Response.java:699)
at com.jfinal.render.ErrorRender.render(ErrorRender.java:59)
at com.jfinal.core.ActionHandler.handle(ActionHandler.java:126)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:744)
而且用官方实例:
public void columns() {
&&&&&&&& String[] columns = new String[] { "ACC_NBR", "DEVID", "IMSI" };
&&&&&&&& String[] headers = new String[] { "电话号码", "设备id", "imsi", "最后上线时间" };
&&&&&&&& String[] headers2 = new String[] { "电话号码", "设备id", "imsi" };
&&&& List&Object& data = Lists.newArrayList();
&&&& for (int i = 0; i & 5; i++) {
&&&& Map&String, Object& map = getMap(i);
&&&& data.add(map);
&&&& render(PoiRender.me(data).fileName("your_file_name.xls").headers(headers).cellWidth(5000).headerRow(2));
private Map&String, Object& getMap(int i) {
Map&String, Object& map = Maps.newHashMap();
map.put("ACC_NBR", "ACC_NBR" + i);
map.put("IMSI", "IMSI" + i);
map.put("DEVID", "DEVID" + i);
map.put("LASTTIME", "LASTTIME" + i);
也是存在同样的问题。
& & 注意看一下异常信息:java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook, 缺少 jar 包
--- 共有 4 条评论 ---
: 我的也是没反应,包都导进去了,debug有数据,浏览器没反应。
数据封装好了,render(poirender)没反应,怎么返回到浏览器??
: 多多支持 jfinal 发展
感谢波总。
最终解决了excel这一块,看了源码的配置jar包,加入了
XMLBeans 2.6.0.jar
以及poi的几个jar包,成功导出。
感谢波总。
引用来自“JFinal”的评论& & 注意看一下异常信息:java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook, 缺少 jar 包
加入了 XMLbeans jar包还有
成功导出。jfinal导出excel表格插件jfinal-ext使用
package yipin.admin.
import java.util.ArrayL
import java.util.L
import com.jfinal.ext.render.excel.PoiR
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.R
import com.jfinal.render.R
import com.lyarc.common.controller.BaseC
import yipin.bean.E
public class PoiRenderController extends BaseController{
public void poiRender(){
List&Record& list = Db.find("select * from exam");
String[] header={"id","试题名称","创建时间","更新时间","操作者","是否有效"};
String[] columns={"id","name","create_time","update_time","operator","is_valid"};
//其实关键代码就这一句话fileName、sheetName、columns、headers为必须
Render poirender = PoiRender.me(list).fileName("carInfo.xls").headers(header).sheetName("试题表").columns(columns);
render(poirender);
所需jar包(这5个为必须)
com.jfinal
jfinal-ext
com.google.guava
org.apache.poi
org.apache.poi
JFinal框架使用renderFile()进行列表页面数据导出Excel
jfinal+poi导出excel
Jfinal+POI导出Excel
jfinal之使用模板导出excel文件
JFinal学习-Excel导出
JFinal HSSFWorkbook导入Excel 并解析内容
jFinal与POI结合导出excel表格
excel 文件导入(jfinal框架下)
没有更多推荐了,}

我要回帖

更多关于 poi导入复杂表头实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信