java用poi导入、导入excel

 首先是导出excel数据
//取当前时间(下面得到文件名称用到,为了防止文件名称重复,以当前时间为文件名称)
java.util.Date curdate = new java.util.Date();
String outFileName = new Long(curdate.getTime()).toString();
//创建文件输出流
FileOutputStream fileOut = null;
//创建文件薄
HSSFWorkbook wb = new HSSFWorkbook();、
//创建一个sheet页,这里的sheet1是sheet页的名字,可以根据需求自定义
 HSSFSheet sheet = wb.createSheet("sheet1");
//设置sheet页的编码
wb.setSheetName(0,"sheet1", HSSFWorkbook.ENCODING_UTF_16);
//创建单元格cell,行row
HSSFRow row = null;
HSSFCell cell = null;
//放入数据,这里只做测试,如果数据多的话就放在list里面循环放入
//设置第一行表头
cell = row.createCell((short)0); 
//设置编码,每次放入值之前都需要设置
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("姓名");


String exptfile = outFileName + ".xls";//文件名称
//文件要输出的地址(姑且先放D盘吧)
fileOut = new FileOutputStream("D:"+File.separator+outFileName+".xls");
//将文件薄写入到这个地址
wb.write(fileOut);
//最后请缓存,关闭
ileOut.flush();
fileOut.close();

----------------------华丽的分割线----------------------


以下是导入数据到数据库
 //这里相反 要得到文件的地址(姑且也在D盘吧)
String filename = "D:\\Test.xls";
FileInputStream fi = null;//文件输入流
POIFSFileSystem fs = null;//这个对象用来解析文件
HSSFWorkbook wb = null;
HSSFSheet sheet = null;
fi = new FileInputStream(filename);
fs = new POIFSFileSystem(fi);
wb = new HSSFWorkbook(fs);
sheet = wb.getSheetAt(0);
int count = sheet.getLastRowNum() + 1;
System.out.println("得到最大的行数==" + count);
HSSFCell cell = null;
for (int i = 1; i < count; i++) {//读取数据从第二行开始,第一行一般都是表头
    HSSFRow hssfRow = sheet.getRow(i); //获取行
    HSSFCell xm = hssfRow.getCell((short) 0);//获取单元格的值
    String value = String.valueOf(xm.getStringCellValue());//这个值也要做处理
    //然后就是把这个值放入到数据库中了
    
}
fi.close();

     

你可能感兴趣的:(java,poi,Excel)