关于把解析SQL文件和把解析的结果导入Excel中

来源:互联网 发布:博雅软件 南京 编辑:程序博客网 时间:2024/05/22 17:36
由于在工作中要把到处来SQL文件放在EXCEL中,然后再有发布组进行发布维护,于是就写了这个自动倒DB的.
package test1;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;public class ExcelWriteTest {public static void main(String[] args) throws Exception{//创建一个可写入的流程jxl.write.WritableWorkbook book = Workbook.createWorkbook(new File("E:/test.xls")); WritableSheet sheet = book.createSheet("DB提交清单", 0);//读取DB文件内容String pathName = "E:/工作/2013/11月/DB/中国移动移动商城省级系统改造/DB/1.sql";//需求名称String xqName ="移动商城";//备注String reMark = "";File file = new File(pathName);FileInputStream fils = new FileInputStream(file);InputStreamReader isr = new InputStreamReader(fils,"GBK");BufferedReader reader = new BufferedReader(isr);String str = null;java.util.List<String> list = new java.util.ArrayList<String>();while((str=reader.readLine())!=null){list.add(str);}reader.close();String oper = list.get(0);String oper1 = oper.substring(12);String[] opers = oper1.split("\\(");//表名称String tableName = opers[0];//数据库用户int nl = opers[0].indexOf(".");String dataBaseName = opers[0].substring(0, nl);String[] excel = new String[0];if(list.size()%3 == 0){excel = new String[list.size()/3];//注意得到list的行数}else{throw new Exception("文件有问题,不满足要求");}for(int j=0;j<excel.length;j++){excel[j] =list.get(3*j)+list.get(3*j+1);}String strUnit = null;for(int m=0;m<7;m++){//m列for(int n=1;n<=excel.length;n++){if(0 == m){strUnit = xqName;}else if(1 == m){strUnit = "DML";}else if(2 == m){strUnit = "CRM";}else if(3 == m){strUnit = tableName;}else if(4 == m){strUnit = dataBaseName;}else if(5 == m){strUnit = excel[n-1];}else{strUnit = reMark;}Label label = new Label(m,n,strUnit);sheet.addCell(label);}}book.write();book.close();}}
核心就是excel处理类和文件读取,其中这个里面涉及到了夺取多行的处理!!
	
				
		
原创粉丝点击