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


由于在工作中要把到处来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处理类和文件读取,其中这个里面涉及到了夺取多行的处理!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值