您的位置:首页 > 职场人生

职场必看的12个寓言故事

2007-01-31 10:43 357 查看
联通一般提供的号段都是xls表格,我们使用时需要把他转化成号段,地区,这样的格式方便查找和管理。
实现读取xls表格,然后根据表格中的内容分解。合成自己需要的内容。

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import java.io.File;
import java.io.IOException;
import java.util.Vector;
/**
*
* @author lijunjie
*
*  第一列是城市名称
*  第零行是号段前缀
*  根据运营商提供的xls表格
*  生成可插入数据库的规范号段
*/
public class ReadXls {
int cols=44;
int rows=13;

private Vector mobilelists=new Vector();

public void readContent()
{
Workbook workbook=null;
try {
workbook = Workbook.getWorkbook(new File("c:\\tddownload\\g.xls"));
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Sheet sheet=workbook.getSheet(0);

for(int i=2;i<cols;i++)
{
for(int j=2;j<rows;j++)
{
String preffix=getContent(sheet,i,0);
preffix=preffix.replaceAll("H1H2H3","");
String city=getContent(sheet,1,j);
if(!preffix.trim().equals("")&&!preffix.trim().equals("地市"))
createContentBySplit(getContent(sheet,i,j),city,preffix);

}

}

workbook.close();
}
/**
* 获取i列j行的数据
* @param sheet
* @param i
* @param j
* @return
*/
public String getContent(Sheet sheet,int i,int j)
{

Cell c2=sheet.getCell(i,j);
return c2.getContents();
}
/**
* 根据子号段类型,选择叠加还是直接添加前缀和城市列表
* @param content
* @param city
* @param preffix
*/
public void createContent(String content,String city,String preffix)
{
String tmp="";
if(content.indexOf("-")>0)
{
String[] nums=content.split("-");
try
{
int start=Integer.parseInt(nums[0]);
int end=Integer.parseInt(nums[1]);

for(int i=start;i<=end;i++)
{
mobilelists.add(city+","+preffix+i);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}

else
{
mobilelists.add(city+","+preffix+content);
}
}

/**
* 将取得号段整理,分解成可处理的号段
* @param content
* @param city
* @param preffix
*/
public void createContentBySplit(String content,String city,String preffix)
{
content=content.replaceAll("、",",");
content=content.replaceAll(" ",",");
content=content.replaceAll(",",",");
String[] nums=content.split(",");
for(int i=0;i<nums.length;i++)
{

if(!nums[i].trim().equals(""))
createContent(nums[i],city,preffix);
}
}
/**
* 打印号段表
*/
public void printMobile()
{
for(int i=0;i<mobilelists.size();i++)
{
System.out.println(mobilelists.get(i));
}
}

public static void main(String[] args)
{
ReadXls rx=new ReadXls();
rx.readContent();

rx.printMobile();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: