easyui DataGrid 工具类之 TableUtil class
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.poi.ss.formula.functions.T;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.dom.DOMDocument;
import com.gsoft.cos.core.util.Assert;
import com.gsoft.modules.infrastructureManagement.utils.execl.ColumnVO;
/**
* @ClassName: TableUtil
* @Description: excel工具类
*/
public class TableUtil {
public static String print(List<List<ColumnVO>> list, List<T> datas) {
return print(list, null, datas);
}
@SuppressWarnings("unchecked")
public static String print(List<List<ColumnVO>> list, String title,
List<?> datas) {
Document doc = new DOMDocument();
doc.setXMLEncoding("UTF-8");
Element table = doc.addElement("table");
table.addAttribute("class", "print-table");
if (Assert.isNotEmpty(title)) {
Element caption = table.addElement("caption");
caption.setText(title);
}
// 表头
List<String> contains = new ArrayList<String>();
Map<String, String> keyMap = new HashMap<String, String>();
for (int i = 0; i < list.size(); i++) {
List<ColumnVO> columns = list.get(i);
int startColumn = 0;
Element tr = table.addElement("tr");
tr.addAttribute("class", "print-th");
for (int j = 0; j < columns.size(); j++) {
if (!contains.contains(startColumn + "," + i)) {
ColumnVO column = columns.get(j);
if ((Assert.isNotEmpty(column.getHidden()) && column
.getHidden()) || !column.isExported()) {
continue;
}
if (Assert.isNotEmpty(column.getField())) {
keyMap.put(String.valueOf(startColumn),
column.getField());
}
Element td = tr.addElement("td");
td.setText(column.getTitle());
int colspan = 1;
if ((Assert.isNotEmpty(column.getColspan()) && column
.getColspan() > 1)) {
colspan = column.getColspan();
}
int rowspan = 1;
if (Assert.isNotEmpty(column.getRowspan())
&& column.getRowspan() > 1) {
rowspan = column.getRowspan();
}
if (colspan > 1) {
td.addAttribute("colspan", String.valueOf(colspan));
}
if (rowspan > 1) {
contains.add(startColumn + "," + (rowspan - 1));
td.addAttribute("rowspan", String.valueOf(rowspan));
}
startColumn += colspan;
} else {
startColumn += 1;
}
}
}
Object object = null;
// 遍历集合
if (datas != null) {
for (int i = 0; i < datas.size(); i++) {
object = datas.get(i);
Element tr = table.addElement("tr");
tr.addAttribute("class", "print-tr");
Map<String, Object> map = new HashMap<String, Object>();
if (!(object instanceof Map)) {
try {
map = BeanUtils.describe(object);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
for (int j = 0; j < keyMap.size(); j++) {
String key = keyMap.get(String.valueOf(j));
String value = MapUtils.getString(map, key);
Element td = tr.addElement("td");
td.addAttribute("class", "print-td");
td.setText(value);
}
}
}
return table.asXML();
}
}
easyui DataGrid 工具类之 TableUtil class的更多相关文章
- easyui DataGrid 工具类之 WorkbookUtil class
/** * @Title: WorkbookUtil.java * @Description: excel工具类 * @date 2014年5月29日 上午10:36:42 * @version V1 ...
- easyui DataGrid 工具类之 util js
var jq; var tab; var tabsIndex; /** ...
- easyui DataGrid 工具类之 Utils class
import java.lang.reflect.InvocationTargetException;import java.text.ParseException;import java.text. ...
- easyui DataGrid 工具类之 后台生成列
@SuppressWarnings({ "rawtypes", "unchecked" }) public Map<String, Object&g ...
- easyui DataGrid 工具类之 列属性class
public class ColumnVO { /** * 列标题文本 */ private String title; /** * 列字段名称 */ pr ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页
系列目录 前言 为了符合后面更新后的重构系统,文章于2016-11-1日重写 EasyUI Datagrid在加载的时候会提交一些分页的信息到后台,我们需要根据这些信息来进行数据分页再次返回到前台 实 ...
- 控制EasyUI DataGrid高度
这次要说的是控制EasyUI的高度,平时我公司的项目,用EasyUI较多,然后datagrid这个组件是用的非常多的.平时我们都是固定高度,常见代码如下: <table ...
- easyui datagrid标题列宽度自适应
最近项目中使用easyui做前端界面,相信大部分使用过easyui datagrid的朋友有这么一个疑问:如果在columns中不设置width属性能不能写个方法让datagrid的头部标题和数据主体 ...
- 实现easyui datagrid在没有数据时显示相关提示内容
本示例实现easyui datagrid加载/查询数据时,如果没有相关记录,则在datagrid中显示没有相关记录的提示信息,效果如下图所示 本实例要实现如下图所示的效果: 本示例easyui版本为1 ...
随机推荐
- 事务处理-回滚(转账操作)(转自http://www.cnblogs.com/void-m/p/6143540.html)
JDBC事务处理-四大原则 原子性一致性隔离性持久性 第一步:实现转账操作 假设在账户中,盖伦有余额5000元,赵信有余额2000元, 盖伦要向赵信转账1000元. 1 2 3 4 5 6 7 8 9 ...
- JAVA 对象调用理解图
- selenium python的使用(一)
下面是一个爬取知网数据的例子,使用selenium 用python爬取数据 1.创建对象,打开指定地址,在休眠的20秒内输入搜索项 driver= webdriver.Chrome() driver. ...
- 原生js实现网页触屏滑动
前言: 我有一个html格式的2048游戏,可以用键盘上下左右操作,但是放到手机上就抓瞎了.于是想修改一下代码,将键盘事件改成手机触屏事件. html5 的touch事件 html5支持touch事件 ...
- LeetCode Sum of Left Leaves
原题链接在这里:https://leetcode.com/problems/sum-of-left-leaves/ 题目: Find the sum of all left leaves in a g ...
- SpringMVC操作指南-整合Spring、SpringMVC、Hibernate、JUnit、Log4j、C3P0
- 使用git版本控制器C#工程,git托管到GitHub和visual studio on line
类比TFS, 托管到了VS online,为私有.GitHub上托管的代码为开源. 新建工程选择版本控制器"Git" VS online: 本地: GitHub,下载github ...
- (转载)(收藏)Awk学习详细文档
awk命令 本文索引 [隐藏] awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 将外部变量值传递给awk awk运算与判断 算术 ...
- front-end plugin, generate pdf with html5 and jquery
http://www.jqcool.net/jquery-jspdf.html[from this site] <html> <head></head> <s ...
- tomcat 默认目录修改
引用:http://andrewyu.blog.51cto.com/1604432/544659 Tomcat7跟以前的版本一样,默认的发布程序是/usr/local/tomcat/webapps/R ...