首先是导出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,行rowHSSFRow 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();