String>();
String[][]tableFiles;
}
理论上通用,罪过。
不多说,有可能用到的,下附件看看。
不合理的地方请指出----------------
下面是完整代码(一些特殊引用只是用作数据取数据,引用时可以去掉的----)packagejetsennet.jmcc.business;
importjava.io.File;
importjava.io.IOException;
importjava.sql.SQLException;
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Map;
importjavax.jws.WebParam;
importmon.PathUtil;importjetsennet.contentmanage.CmDataAccess;importjetsennet.contentmanage.CmObjHelper;import.UserAuthHeader;import.WSResult;
importjetsennet.sqlclient.ConnectionInfo;importjetsennet.sqlclient.DbConfig;importjetsennet.sqlclient.ISqlExecutor;importjetsennet.sqlclient.QueryTable;importjetsennet.sqlclient.SqlClientObjFactory;importjetsennet.sqlclient.SqlCondition;importjetsennet.sqlclient.SqlLogicType;importjetsennet.sqlclient.SqlParamType;importjetsennet.sqlclient.SqlQuery;importjetsennet.sqlclient.SqlRelationType;importjetsennet.sqlclient.TableJoinType;importjetsennet.util.StringUtil;importjxl.Workbook;
importjxl.write.Label;
importjxl.write.WritableCellFormat;importjxl.write.WritableFont;
importjxl.write.WritableSheet;
importjxl.write.WritableWorkbook;
importorg.dom4j.Document;
importorg.dom4j.Element;
importorg.dom4j.io.SAXReader;
publicclassxmlToExcel
{
privatestaticjetsennet.logger.ILoglogger=jetsennet.logger.LogManager.getLogger("JetsenNet.JCMP");
privatestaticStringXSD_FILE_PATH="jcmp/schemafiles";
privatestaticConnectionInfocmpConnectionString=newConnectionInfo(DbConfig.getProperty("cmp_driver"),DbConfig.getProperty("cmp_dburl"),
DbConfig.getProperty("cmp_dbuser"),
DbConfig.getProperty("cmp_dbpwd"));
staticjxl.write.WritableFonttitleFont=newjxl.write.WritableFont(WritableFont.createFont("宋体"),10,WritableFont.BOLD,false);
staticWritableCellFormattitleFormat=newjxl.write.WritableCellFormat(titleFont);
privatestaticConnectionInfomccConnectionString=newConnectionInfo(DbConfig.getProperty("mcc_driver"),DbConfig.getProperty("mcc_dburl"),
DbConfig.getProperty("mcc_dbuser"),
DbConfig.getProperty("mcc_dbpwd"));
privatestaticISqlExecutorsqlExecutor=SqlClientObjFactory.createSqlExecutor(mccConnectionString);
staticintcelltitlenow=0;//当前列表头列号
staticintcellvaluenow=0;//当前内容列号
staticintrowtitlenow=0;//当前列表头行号
staticbooleanaddcelltitle=true;
staticStringOldObjtype="";
publicstaticvoidmain(String[]args)
{
Filefile=newFile("C:
/temp/test.xls");
WritableWorkbookworkbook;
try
{
workbook=Workbook.createWorkbook(file);
//processActivity(workbook,"4023,4025,4007,4024,4026","200101,200103,200101,200102,200104");
processActivity(workbook,"4023,4025,4007","200101,200101,200101");
workbook.write();
workbook.close();
}
catch(Exceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
System.out.println("OK?
");
}
publicstaticvoidprocessActivity(WritableWorkbookworkBook,String
obj_id,Stringobj_subtype)throwsException
{
OldObjtype="";
celltitlenow=0;
addcelltitle=true;
rowtitlenow=0;
WritableSheetsheet=workBook.createSheet("sheet1",0);
/****/
/**导出ID**/
String[]ids=obj_id.split(",");
/**导出类型**/
String[]idt=obj_subtype.split(",");
/**导出个数**/
intidsl=ids.length;
/**定义列宽**/
intcellwihth=20;
xExcelTypext=newxExcelType();
xt.exShowType=1;
if(xt.exShowType==1)
{
addcelltitle=true;
}
else
{
addcelltitle=false;
}
//******************主表/结构定义
//200101
xmlStructmainXmlStruct1=newxmlStruct();
mainXmlStruct1.tableName="CM10_OBJECT";
mainXmlStruct1.tableCName="活动信息";
mainXmlStruct1.tableCalssField="OBJ_SUBTYPE";
mainXmlStruct1.tableCalssCName.put("200101","院团大事");
mainXmlStruct1.tableCalssCName.put("200102","院团出访");
mainXmlStruct1.tableCalssCName.put("200103","院团专家交流");
HashMaptest1=newHashMap();
test1.put("0","新建");
test1.put("100","完成");
mainXmlStruct1.tableFilesClassValue.put("OBJ_STATE",test1);
mainXmlStruct1.tableFiles=newString[][]{{"OBJ_NAME","活动名称"},{"FIELD_1","活动内容简介"},{"FIELD_2","活动开始时间"},
{"FIELD_3","活动结束时间"}};
xt.alltables.put("200101",mainXmlStruct1);
xt.alltables.put("200102",mainXmlStruct1);
xt.alltables.put("200103",mainXmlStruct1);
//200104
xmlStructmainXmlStruct2=newxmlStruct();
mainXmlStruct2.tableName="CM10_OBJECT";
mainXmlStruct2.tableCName="活动信息";
mainXmlStruct2.tableCalssField="OBJ_SUBTYPE";
mainXmlStruct2.tableCalssCName.put("200104","院团演出");
mainXmlStruct2.tableFiles=newString[][]{{"OBJ_NAME","活动名称"},{"FIELD_2","活动开始时间"},{"FIELD_3","活动结束时间"}};
xt.alltables.put("200104",mainXmlStruct2);
//20010401
xmlStructmainXmlStruct3=newxmlStruct();
mainXmlStruct3.tableName="CM10_OBJECT";
mainXmlStruct3.tableCalssField="OBJ_SUBTYPE";
mainXmlStruct3.tableCalssCName.put("20010401","演出日志");
//HashMapshowType_hm=getHMctroWord("20010401");
//mainXmlStruct1.tableFilesClassValue.put("FIELD_3",showType_hm);
mainXmlStruct3.tableFiles=newString[][]{{"FIELD_1","演出时间"},{"FIELD_2","演出场次"},{"FIELD_3","演出类型"},{"NUM_VAL2","观众人数"}};
xt.alltables.put("20010401",mainXmlStruct3);
//********************从表/结构定义
//
xmlStructson1Struct1=newxmlStruct();
son1Struct1.tableName="CM10_MULTIINFO";
son1Struct1.tableCName="动信息";
son1Struct1.tableCalssField="INFO_TYPE";
son1Struct1.tableCalssFieldValue="1";
//HashMaptest2=newHashMap();
//test2.put("1","新建1");
//test2.put("2","完成2");
//test2.put("3","完成3");
//xs2.tableFilesClassValue.put("INFO_TYPE",test2);
son1Struct1.tableFiles=newString[][]{{"FIELD_1","活动地点"}};
xt.alltables.put("200101-1",son1Struct1);
xt.alltables.put("200102-1",son1Struct1);
xt.alltables.put("200103-1",son1Struct1);
//
xmlStructson1Struct2=newxmlStruct();
son1Struct2.tableName="CM10_MULTIINFO";
son1Struct2.tableCName="人员信息";
son1Struct2.tableCalssField="INFO_TYPE";
son1Struct2.tableCalssFieldValue="2";
son1Struct2.tableFiles=newString[][]{{"FIELD_1","参与人员"}};
xt.alltables.put("200101-2",son1Struct2);
xt.alltables.put("200102-2",son1Struct2);
xt.alltables.put("200103-2",son1Struct2);
//
xmlStructson1Struct3=newxmlStruct();
son1Struct3.tableName="CM10_MULTIINFO";
son1Struct3.tableCName="剧目信息";
son1Struct3.tableCalssField="INFO_TYPE";
son1Struct3.tableCalssFieldValue="3";
son1Struct3.tableFiles=newString[][]{{"FIELD_1","剧目名称"}};
xt.alltables.put("200101-3",son1Struct3);
xt.alltables.put("200102-3",son1Struct3);
xt.alltables.put("200103-3",son1Struct3);
xmlStructson2Struct1=newxmlStruct();
son2Struct1.tableName="CM10_MULTIINFO";
son2Struct1.tableCalssField="INFO_TYPE";
son2Struct1.tableCalssFieldValue="1";
son2Struct1.tableFiles=newString[][]{{"FIELD_1","节目单"}};
xt.alltables.put("200104-1",son2Struct1);
xmlStructson2Struct2=newxmlStruct();
son2Struct2.tableName="CM10_MULTIINFO";
son2Struct2.tableCalssField="INFO_TYPE";
son2Struct2.tableCalssFieldValue="2";
son2Struct2.tableFiles=newString[][]{{"FIELD_1","剪报"}};
xt.alltables.put("200104-2",son2Struct2);
xmlStructson2Struct3=newxmlStruct();
son2Struct3.tableName="CM10_MULTIINFO";
son2Struct3.tableCalssField="INFO_TYPE";
son2Struct3.tableCalssFieldValue="3";
son2Struct3.tableFiles=newString[][]{{"FIELD_1","海报"}};
xt.alltables.put("200104-3",son2Struct3);
//演出的日志多关联
xmlStructson3Struct1=newxmlStruct();
son3Struct1.tableName="CM10_MULTIINFO";
son3Struct1.tableCalssField="INFO_TYPE";
son3Struct1.tableCalssFieldValue="1";
son3Struct1.tableFiles=newString[][]{{"FIELD_