读取Excel,使用流的方式--速度很慢

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import jxl.Cell;
import jxl.CellType;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;

public class UploadExcel
{

private static ArrayList lst=new ArrayList();

//将数据保存在 HashMap中
private static ArrayList> mlist=null;


//表名
private static String tableName;

//文件路径
private static String filepath;

/**
*读取表中的数据,并将数据存放到一个三位数组中
*
* **/
public static ArrayList> readExcel(InputStream stream)
{
System.out.println("InputStream start: ");
mlist=new ArrayList>();
try
{
Workbook rwb=Workbook.getWorkbook(stream);
Sheet st[]=rwb.getSheets();
System.out.println("表格个数: "+st.length);
for(int a=0;a {
ArrayList alList=new ArrayList();
ArrayList tablenames=new ArrayList();
ArrayList tableAndContents=new ArrayList();
// System.out.println("=第"+(a+1)+"张表=");
tableName=st[a].getName().trim();
int b=0;
//tmonth
int tmonth=0;

//行
for(int i=1;i {
Map mp=new HashMap();
if(st[a].getCell(0,i).getContents()==null || st[a].getCell(0,i).getContents().equals("")) break;

int columns=st[a].getColumns();
tmonth=0;
if(columns>5) columns=5;
// System.out.println(columns+" : "+st[a].getColumns());
for(int j=0;j {

if(st[a].getCell(j,i).getContents()==null || st[a].getCell(j,i).getContents().equals("")) break;

Cell cl=st[a].getCell(j, i);
String strcl=new String();
if (j == 0)
{
if (st[a].getCell(0, i).getType() == CellType.NUMBER)
{
NumberCell cd = (NumberCell) st[a].getCell(0, i);
strcl=ChangeUtil.getDateInfor(cd.getValue());
tmonth=ChangeUtil.getDate(cd.getValue());
}
else
{
break;
}
}
else
strcl=cl.getContents().trim();
strcl=ChangeUtil.change(strcl);
mp.put(array[j], strcl);
}

if(mp!=null && tmonth!=0){
mp.put(array[array.length-2],"IF"+tableName);
mp.put(array[array.length-1], tmonth);
mlist.add(mp);
System.out.println("hello: "+mlist);
}
}
}
rwb.close();
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return mlist;
}
public static List>loadExcel(InputStream stream)
{
return readExcel(stream);
}
}

你可能感兴趣的:(Java,All)