当前位置: 首页 > news >正文

罗湖网站定制保利威视 wordpress

罗湖网站定制,保利威视 wordpress,自学做衣服的网站,网站设计与制作专业十五、Apache POI Apache POI是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是#xff0c;我们可以使用POI在Java 序中对Miscrosoft Office各种文件进行读写操作。一般情况下#xff0c;POI都是用于操作Excel文件。 使用场景#xff1a;银行网银系统导出交…十五、Apache POI Apache POI是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是我们可以使用POI在Java 序中对Miscrosoft Office各种文件进行读写操作。一般情况下POI都是用于操作Excel文件。 使用场景银行网银系统导出交易明细、各种业务系统导出Excel报表、批量导入业务数据。 1、入门案例 导入对应的Maven坐标 dependency groupIdorg.apache.poi/groupId artifactIdpoi/artifactId version3.16/version /dependencydependency groupIdorg.apache .poi/groupId artifactIdpoi-ooxml/artifactId version3.16/version /dependency 创建Excel工作簿并对其写入和读取 public class POITest {/**通过POI.创建Excel.文件并且写入文件内容*/public static void wirteExcel() throws Exception{// 在内存中创建一个EXcel工作簿XSSFWorkbook workbook new XSSFWorkbook();// 在工作簿中创建一个工作表并命名为infoXSSFSheet sheet workbook.createSheet(info);// 在info工作表中创建一行行号是从0开始的XSSFRow row sheet.createRow(1);// 在row行中创建一个单元格列号从0开始,并设置单元格的值为姓名2行3列性别2行4列row.createCell(2).setCellValue(姓名);row.createCell(3).setCellValue(性别);//再次创创建一个新行第3行rowsheet.createRow(2);// 在row行中创建单元格并设置单元格的值row.createCell(2).setCellValue(张三);row.createCell(3).setCellValue(男);// 再次创建一个新行第4行rowsheet.createRow(3);row.createCell(2).setCellValue(小明);row.createCell(3).setCellValue(女);// 将内存中的数据写入到磁盘中OutputStream outputStreamnew FileOutputStream(D:\\info.xlsx);workbook.write(outputStream); // 写入到输出流中//关闭资源outputStream.close();workbook.close();}/*** 读取Excel文件* throws Exception*/public static void readExcel() throws Exception{// 创建输入流对象InputStream inputStreamnew FileInputStream(D:\\info.xlsx);//从输入流中读取一个工作簿XSSFWorkbook workbooknew XSSFWorkbook(inputStream);// 根据名字来获取工作表// XSSFSheet sheet workbook.getSheet(info);//根据下标来获取工作表XSSFSheet sheet workbook.getSheetAt(0);// 获取最后一行的行号(下标从0开始的)Integer lastRowNum sheet.getLastRowNum();// 循环读取每一行,以及每一行对应的单元格数据第一行为空白我们从第二行开始读取下标为1for(int i1;ilastRowNum;i){XSSFRow row sheet.getRow(i); // 获取第i行String name row.getCell(2).getStringCellValue(); // 获取第i行第3列的数据String sex row.getCell(3).getStringCellValue(); // 获取第i行第4列的数据System.out.println(name---sex);}// 关闭资源inputStream.close();workbook.close();}public static void main(String[] args) throws Exception {wirteExcel();readExcel();} }2、实操案例 报表导出营业数据导出到工作表中下载下来。 接口没有参数也没有返回值。 一般情况下想这个比较复杂的工作表都是不需要提供POI来创建的一般是手动创建这样一个模板文件通过输入流将其读取进去只需要将数据写入对应的单元格通过输出流由客户端、浏览器进行下载即可。 2.1 Controller层 /*** 导出运营数据报表*/Operation(summary 导出运营数据报表)GetMapping(/export)public void getBusinessReportData(HttpServletResponse response){// 调用service导出报表,传入响应对象reportService.exportBusinessReport(response);}2.2 Service层 /*** 导出运营数据报表* param response*/Overridepublic void exportBusinessReport(HttpServletResponse response) {//1、获取运营数据LocalDate beginDateLocalDate.now().minusDays(30);LocalDate endDateLocalDate.now().minusDays(1);LocalDateTime beginTimeLocalDateTime.of(beginDate,LocalTime.MIN);LocalDateTime endTimeLocalDateTime.of(endDate,LocalTime.MAX);BusinessDataVO businessDataVO workspaceService.getBusinessData(beginTime,endTime); //获取运营数据//2、将数据写入到模板文件中//2.1、获取模板文件log.info(name:{},this.getClass().getClassLoader());//通过类加载器获取到路径src/main/resources再拼接路径template/运营数据报表模板.xlsxInputStream inputStreamthis.getClass().getClassLoader().getResourceAsStream(template/运营数据报表模板.xlsx);try {//2.2、通过模块创建工作簿XSSFWorkbook workbooknew XSSFWorkbook(inputStream);//2.3、读取第一个工作表XSSFSheet sheetworkbook.getSheetAt(0);//2.4、设置时间数据sheet.getRow(1).getCell(0).setCellValue(日期范围beginDate 至 endDate);//2.5、设置概况数据XSSFRow row sheet.getRow(3);row.getCell(1).setCellValue(businessDataVO.getTurnover().doubleValue());//营业额row.getCell(3).setCellValue(businessDataVO.getOrderCompletionRate()); //订单完成率row.getCell(5).setCellValue(businessDataVO.getNewUsers()); //新增用户数row sheet.getRow(4);row.getCell(1).setCellValue(businessDataVO.getValidOrderCount());//有效订单数row.getCell(3).setCellValue(businessDataVO.getUnitPrice().doubleValue());//平均客单价//2.6、设置订单明细数据for(int i0;i30;i){LocalDate datebeginDate.plusDays(i);LocalDateTime beginLocalDateTime.of(date,LocalTime.MIN);LocalDateTime endLocalDateTime.of(date,LocalTime.MAX);businessDataVOworkspaceService.getBusinessData(begin,end);row sheet.getRow(7i);row.getCell(0).setCellValue(date.toString()); //日期row.getCell(1).setCellValue(businessDataVO.getTurnover().doubleValue()); //营业额row.getCell(2).setCellValue(businessDataVO.getValidOrderCount()); //有效订单数row.getCell(3).setCellValue(businessDataVO.getOrderCompletionRate());//订单完成率row.getCell(4).setCellValue(businessDataVO.getUnitPrice().doubleValue());row.getCell(5).setCellValue(businessDataVO.getNewUsers()); //新增用户数}//3、将文件输出到浏览器 浏览器下载ServletOutputStream servletOutputStream response.getOutputStream();workbook.write(servletOutputStream);//4、关闭资源workbook.close();servletOutputStream.close();inputStream.close();}catch (Exception e){e.printStackTrace();}}
http://www.w-s-a.com/news/712400/

相关文章:

  • 在线做爰直播网站石家庄房产
  • 建筑网站哪里找拓者设计吧首页
  • 广州网站的建设wordpress注册数学验证码
  • 装修平台自己做网站有几个黄页名录网站开发
  • php网站的安全优势平面设计师培训
  • 乐清市网站建设设计重庆沙坪坝区
  • 什么是seo站内优化开发网页的工具有哪些
  • 文化类网站是不是休闲娱乐类网站青州市建设局网站
  • 网站的中英文切换代码做现货黄金网站
  • 万江区网站建设公司前端如何根据ui设计写页面
  • 宿迁公司做网站手机免费创建网站的软件
  • 免费可商用素材网站山东威海网站开发
  • 建设网站什么语言比较合适柳州建设网经济适用房
  • 企业网站的主要功能板块平台推广是做什么的
  • 网页网站自做全搞定西安建设工程信息网诚信平台
  • 网站vip怎么做建网站外包公司
  • 胶州建网站域名不备案可以正常使用吗
  • 网站建设客户开发方案软件工程师行业分析
  • 沈阳网站建设黑酷科技微信小程序怎么一键删除
  • 做网站产品搜索展示实现西安百度推广服务公司
  • 建立网站接受投注是什么意思一般使用的分辨率的显示密度是多少
  • 怎么建立一个网站开展业务网站建设人员的工资分配
  • 求职网站建设方案企业网站开发需求分析
  • 西安企业网站开发可以做哪些有趣的网站
  • 房产类网站开发云南百度建站
  • 泰州网站建设电话彩票网站怎么做代理
  • 泉州网站制作推广山西网站开发建设
  • 百度商桥怎样绑定网站百度推广登陆
  • 重庆网站建设论坛株洲论坛
  • 网站怎么做切换中英文济南广运建设公司网站