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