两个企业级应用系统之间做数据交互的方式,如下:
WebService
HTTP POST
FTP
...
当然,这些方式都是建立在,网络互通的基础上.
也有一些应用系统部署局域网内,只允许浏览器访问,
此时,只能通过将系统A的数据导出,再导入系统B,相互约定数据格式.
在驾培系统中,我们会使用POI组件,将学员信息及学时信息,导入/导出为excel.
下面来实现POI的简单读写:
依赖包:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.8</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.8</version> </dependency>
注意:
HSSF:操作 excel 2003(.xls)
XSSF:操作 excel 2007以上(.xlsx)
创建excel文件
Workbook wb = new HSSFWorkbook(); FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close();
创建工作表
Workbook wb = new HSSFWorkbook(); //创建工作表 Sheet sheet1 = wb.createSheet("new sheet"); FileOutputStream fileOut = new FileOutputStream("workbook.xls"); wb.write(fileOut); fileOut.close();
读取数据:
//加载excel //WorkbookFactory创建,通过文件名来选择HSSF还是XSSF Workbook wb=WorkbookFactory.create(new File("test.xlsx")); //获取工作表 Sheet sheet=wb.getSheetAt(0); Row row=null; for(int i=0;i<=sheet.getLastRowNum();i++){ //获取行 row=sheet.getRow(i); for(int j=row.getFirstCellNum();j<row.getLastCellNum();j++){ //获取单元格 Cell cell = row.getCell(j); //获取单元格的内容 System.out.print(cell.getStringCellValue()+"\t"); } System.out.println(); }
写数据:
Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("kun"); //单元格样式 CellStyle style = wb.createCellStyle(); style.setBorderTop(CellStyle.BORDER_THICK); style.setBorderRight(CellStyle.BORDER_THICK); style.setBorderBottom(CellStyle.BORDER_THICK); style.setBorderLeft(CellStyle.BORDER_THICK); style.setAlignment(CellStyle.ALIGN_CENTER); style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); //创建行 Row row=sheet.createRow(0); row.setHeightInPoints(30); //创建单元格 Cell cell=row.createCell(0); cell.setCellValue("id"); //设置单元格样式 cell.setCellStyle(style); //创建单元格 cell=row.createCell(1); cell.setCellValue("姓名"); //设置单元格样式 cell.setCellStyle(style); FileOutputStream fileOut = new FileOutputStream("mydata.xls"); wb.write(fileOut); fileOut.close();