📄 generateconfigxml.java
字号:
package com.pengjj.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.pengjj.util.ExcelUtil;
import com.pengjj.util.FileUtil;
public class GenerateConfigXml {
public static void main(String[] args) {
String sourceFile="e:/exceltest.xls";
String newFile = "c:/dbnew.xml";
String deleteFile = "c:/errorcodesqldelete.txt";
GenerateConfigXml generateConfigXml = new GenerateConfigXml();
generateConfigXml.generateExcel(generateConfigXml,sourceFile,newFile);
}
public void generateExcel(GenerateConfigXml generateConfigXml,String sourceFile, String newFileName) {
// datawindow的名称,如:D_cc_jcbg
String sDataWindowName = "";
// 内码,如:CC_JCBG_BGNM
String sTableNm = "";
// 表名:CC_JCBG
String sTableName = "";
//表名的中文名称
String sTableNameShow = "";
//input的类型:input、hidden、textarea
String inputOrTextarea = "input";
//占用的列数
String colspan = "1";
//数据库字段
String sCode = "";
//数据库字段对应的中文名称
String sCodeName = "";
//数据库字段的长度
String sCodeLength = "";
// PENGJJ_TODO 判断是否隐藏字段:需要追加相关的类型
String sHiddenType = "(NM)|(ZYX)|(\\w+BZ)|(XG)|(LRR)|(SC)";
ExcelUtil excelUtil = new ExcelUtil();
ArrayList arrayList = excelUtil.getExcel(sourceFile);
HashMap hashMap = new HashMap();
StringBuffer sXml = new StringBuffer(
"<?xml version=\"1.0\" encoding=\"gb2312\" ?>\r\n");
sXml.append(" <GenerationRule>\r\n");
sXml.append(" <OrClassNamePath>ctais.business.common.data."
+ sDataWindowName + "</OrClassNamePath>\r\n");
sXml.append(" <MainTable>\r\n");
sXml.append(" <Name>" + sTableName + "</Name>\r\n");
sXml.append(" <Show>"+sTableNameShow+"</Show>\r\n");
sXml.append(" <Key>" + sTableNm + "</Key>\r\n ");
sXml.append(" <Fields>\r\n");
//PENGJJ_TODO 根据excel表格读取对应的字段、字段名称、大小
int iArrayList = arrayList.size();
for (int i = 0; i < iArrayList; i++) {
hashMap = (HashMap) arrayList.get(i);
sCode = (String) hashMap.get("0");
sCodeName = (String) hashMap.get("1");
sCodeLength = (String) hashMap.get("3");
//PENGJJ_TODO 得到字段的长度
sXml.append("<Item>\r\n");
// 数据库字段名称
sXml.append(" <Name>");
sXml.append(sCode);
sXml.append("</Name>\r\n");
// 界面上显示的名称
sXml.append(" <Show>");
sXml.append(sCodeName);
sXml.append("</Show>\r\n");
// TODO 如果字段为内码,hidden,如果长度大于32,为textarea
inputOrTextarea = "input";
colspan = "1";
if (generateConfigXml.isHidden(sCode, sHiddenType)) {
inputOrTextarea = "hidden";
}
// textarea域的情况比较复杂,目前暂且不考虑
// else if(Integer.parseInt(strSql[2].trim())>32){
// inputOrTextarea="textarea";
// colspan = "3";
// j--;
// System.out.println("222---"+inputOrTextarea);
// }
sXml.append(" <DisplayType>" + inputOrTextarea
+ "</DisplayType>\r\n");
sXml.append(" <IsQuery>false</IsQuery>\r\n");
// TODO 如果长度大于32,为2 colspan
sXml.append(" <ColSpan>" + colspan + "</ColSpan>\r\n");
sXml.append(" <IsFill>false</IsFill>\r\n");
sXml.append(" <DataType>string</DataType>\r\n");
sXml.append(" <MaxLength>");
sXml.append(sCodeLength);
sXml.append("</MaxLength>\r\n");
sXml.append(" <ReadOnly>false</ReadOnly>\r\n");
// if ((j + 1) % 2 == 0) {
// sXml.append(" <Width>18%</Width>\r\n");
// } else {
// sXml.append(" <Width>34%</Width>\r\n");
// }
sXml.append(" <IsQueryLink>false</IsQueryLink>\r\n");
sXml.append(" <IsGridColumn>false</IsGridColumn>\r\n");
sXml.append(" <IsAuditQuery>false</IsAuditQuery>\r\n");
sXml.append(" <IsAuditGridColumn>false</IsAuditGridColumn>\r\n");
sXml.append("</Item>\r\n");
}
sXml.append(" </Fields>\r\n");
sXml.append(" </MainTable>\r\n");
sXml.append("</GenerationRule>\r\n");
// FileUtil fileUtil = new FileUtil();
// 写入文件
FileUtil.writeFile(newFileName, sXml.toString());
}
/**
* 是否属于隐藏字段
* @param sCode 字段名称
* @param regex 属于隐藏字段的正则表达式
* @return 隐藏:true,
*/
public boolean isHidden(String sCode,String regex){
boolean flag = true;
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(sCode);
flag = m.find();
return flag;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -