代码快速 实现xml 转换为 Excel(xml转excel通用类-java-完成代码 可作工具使用)
用代码实现xml 文件/数据 转换为excel 文件。(java)----何潮
背景:最近项目要做导出功能,但导出的数据对象类型实在太多了,一个个去实现;实在是没心情去做。于是----------
意义:快速实现数据导出
为什么是xml to excel?
因为项目中可以直接使用xml数据。所以就选择xml了。(直接数据库取数据转excel,也可以按同一思路实现)
目标:从一个最多二级关联的数据结构,通过定义结构关系,实现数据自动转换成excel.
特点:支持字典字段转换,可合并多关联字段,三种效果展示,有一定的可复用性 ^_^(最多二级关联----当然,可自行扩展)
转换效果:实现三种显示方式的转换
方式1:一行显示一个完整对象(合并多个关联表)
方式2:复合形展示
方式3:一行显示一个完整对象(合并多个关联表)----支持不同对象不同表头
复用实现一个简单导出要多少代码,
xmlStruct mainXmlStruct1 = new xmlStruct();
mainXmlStruct1.tableName = "CM10_OBJECT";
mainXmlStruct1.tableCName = "活动信息";
mainXmlStruct1.tableCalssField = "OBJ_SUBTYPE";
mainXmlStruct1.tableCalssCName.put("200101", "院团大事");
使用dom4j解析xml文件HashMap<String, String> test1 = new HashMap<String, String>();
test1.put("0", "新建");
test1.put("100", "完成");
mainXmlStruct1.tableFilesClassValue.put("OBJ_STATE", test1);
mainXmlStruct1.tableFiles = new String[][] { { "OBJ_NAME", "活动名称" }, { "FIELD_1", "活动内容简介" }, { "FIELD_2", "活动开始时间" },
{ "FIELD_3", "活动结束时间" }, { "OBJ_STATE", "状态" } };
xt.alltables.put("200101", mainXmlStruct1);
思路,
定义结构 定义数据关系
过程循环取表,循环取表头,循环取内容--------
class xExcelType
{
/** xls显示方式0:组合式1:单一列表式 **/
int exShowType = 0;
String rootName = "DataSource";
String maintableName = "CM10_OBJECT";
HashMap<String, xmlStruct> alltables = new HashMap<String, xmlStruct>();
}
/** 定义xml数据结构定义 **/
class xmlStruct
{
String tableName = "";// 表名
String tableCName = "";// 表名中文说明
/** 表的性质0:主表(默认)1:从表---这里暂处理1级主从,哈 **/
int tableType = 0;
String tableCalssField = "";// 如果有内容分类,分类标识字段
String tableCalssFieldValue = "";
HashMap<String, String> tableCalssCName = new HashMap<String, String>();
/** 表的字典字段及对应值 **/
HashMap<String, HashMap<String, String>> tableFilesClassValue = new HashMap<String, HashMap<String, String>>();
/** 表字段中文对应 **/
// HashMap<String, String> tableFiles = new HashMap<String,
String>();
String[][] tableFiles;
}
理论上通用,罪过。不多说,有可能用到的,下附件看看。
不合理的地方请指出----------------
下面是完整代码(一些特殊引用只是用作数据取数据,引用时可以去掉的----) package jetse
nnet.jmcc.business;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.jws.WebParam;
import jetsennetmon.PathUtil; tmanage.CmDataAccess; tmanage.CmObjHelper; import jetsennet.UserAuthHeader; im
port jetsennet.WSResult;
import jetsennet.sqlclient.ConnectionInfo; import jetsennet.sqlclient.DbConfig; import jetsennet.sqlclient.ISqlExecutor; import jetsennet.sqlclient.QueryTable; import jetsennet.sqlclient.SqlClientObjFactory; import jetsennet.sqlclient.SqlCondition; import jetsennet.sqlclient.SqlLogicType; import jetsennet.sqlclient.SqlParamType; import jetsennet.sqlclient.SqlQuery; import jetsennet.sqlclient.SqlRelationType; import jetsennet.sqlclient.TableJoinType; import jetsennet.util.StringUtil; import jxl.Workbook;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论