import java.io.File
import java.io.FileInputStream
import java.io.InputStream
import java.util.ArrayList
import java.util.List
import java.util.Map
import java.util.TreeMap
import jxl.Sheet
import jxl.Workbook
public class Excel {
@SuppressWarnings("unchecked")
public List addCust(File file){
List list=new ArrayList()
List list2=new ArrayList()
Workbook rwb=null
try {
List list1=new ArrayList()
InputStream is=new FileInputStream(file)//读取文件(所要导入excel的保存目录,如:f:\\a.xls)
rwb=Workbook.getWorkbook(is)//创建工作薄
Sheet rs=rwb.getSheet(0)//读取excel中的第一个工作表(默认新建excel下面有sheet1,sheet2,sheet3)
int cellCount=rs.getColumns()//获取Sheet表中所包含的总列数
int rowCount=rs.getRows()//获取Sheet表中所包含的总行数
for(int m=0m<cellCountm++){//将表的第一行数据保存到list1中(列名),即id,name ,age
String cell=rs.getCell(m,0).getContents()
list1.add(cell)
}
for(int i=1i<rowCounti++){//获取值
Map map=new TreeMap()
for(int j=0j<cellCountj++){
map.put(list1.get(j),rs.getCell(j,i).getContents())//将值以键/值对方式保存到map对象中即(id:1,name:zhangsan,age:18)
}
list.add(map)//将值保存到list中
//System.out.println(list.get(i-1))
}
list2.add(list1)//将表头(id,name,age)保存到list2中
list2.add(list)//将值保存到list2中
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace()
}finally{
rwb.close()
}
return list2
}
public void tosql(){
List list=addCust(file)//file:所要导入excel的保存目录,如:f:\\a.xls
Map map=new HashMap()
String[] values=new String[ls2.size()]//保存id,name,age 值
for (int i =0i <ls2.size()i++) {
map=(Map)ls2.get(i)
String value=""
id=(String)map.get("id")
name=(String)map.get("name")
age=(String)map.get("age")
value=id+""+name+""+age
values[i]=value
}
}
}
这是段读取excel表数据的代码,在tosql方法中调用addCust方法读取excel表,最后把所有行的id,name,age值保存到了values数组中,也可以保存到类中,如果你会对数据库 *** 作的话,
后面的你自己弄下就行了,不会的话留言,我晚上在告诉你,我现在上班呢,时间有限,只能写这么多了
用到的类 是 :import org.apache.poi.hssf.usermodel.HSSFRow
import org.apache.poi.hssf.usermodel.HSSFSheet
import org.apache.poi.hssf.usermodel.HSSFWorkbook
try {
// List<String[]>中的元素 行数组String[]为excel中的每一行
List<String[]>list = new ArrayList<String[]>()
InputStream is = new FileInputStream("test.xls")
HSSFWorkbook hwk = new HSSFWorkbook(is)// 将is流实例到 一个excel流里
HSSFSheet sh = hwk.getSheetAt(0)// 得到book第一个工作薄sheet
int rows = sh.getLastRowNum()+1 - sh.getFirstRowNum() // 总行数
for(int i=0i<rowsi++){
HSSFRow row = sh.getRow(i)
int cols = row.getLastCellNum()+1 - row.getFirstCellNum() // 该行的总列数
String[] str = new String[cols] // 用来存放该行每一列的值
for (int j = 0j <colsj++) {
Object col = row.getCell((short)j)
str[j] = col.toString()
}
}
......
......
循环变量 i 和 j 可以自己设定从第几行开始读,第几列开始读,下标从0开始。
然后你想做什么判断想做什么数据匹配都可以自己加了。
poi.hssf.usermodel.* jar包要是网上找不到,就给我发邮件,我邮给你:273686381@qq.com
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)