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

淘宝联盟网站建设dw做网站首页长宽设置多少

淘宝联盟网站建设,dw做网站首页长宽设置多少,网店erp系统哪个好,海淀区seo搜索优化1、问题 工作中遇到一个需求#xff0c;接收一个zip包#xff0c;读取其中的excel文件并处理#xff0c;减少用户多次选择目录和文件的痛点#xff0c;该zip包包含多级目录 2、依赖 需要用到apache的Workbook类来操作Excel#xff0c;引入以下依赖 dependency接收一个zip包读取其中的excel文件并处理减少用户多次选择目录和文件的痛点该zip包包含多级目录 2、依赖 需要用到apache的Workbook类来操作Excel引入以下依赖 dependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion3.9/version /dependency3、具体实现 public ListWorkbook getExcelsFromZip(MultipartFile multipartFile) {ZipInputStream zis null;ListWorkbook workbooks new ArrayList();try {// 构建zip流zis new ZipInputStream(multipartFile.getInputStream());// 获取文件条目,此方法读取的问zip包中所有条目(目录和文件),多级目录下的所有文件和目录均会被读取ZipEntry zipEntry zis.getNextEntry();while (zipEntry ! null) {// 判断类型是否为文件if (!zipEntry.isDirectory()) {// 获取文件名String fileName zipEntry.getName();/* 后缀名 */int suffixIndex fileName.lastIndexOf(.);String suffix suffixIndex 0 ? fileName.substring(suffixIndex) : ;// 判断是否为excel文件if (.xls.equals(suffix) || .xlsx.equals(suffix)) {/* 读取文件 */ByteArrayOutputStream out new ByteArrayOutputStream();byte[] buffer new byte[1024];int len;// 在调用了getNextEntry()后,zis就指向了获取到的ZipEntry,读取zis流实际就是读取当前ZipEntry,不会读取到其他条目while ((len zis.read(buffer)) 0) {out.write(buffer, 0, len);}ByteArrayInputStream in new ByteArrayInputStream(out.toByteArray());/* 构建Workbook */Workbook wb;if (.xls.equals(suffix)) {// 老版excel格式,使用HSSFWorkbookwb new HSSFWorkbook(in);}else {// 新版excel格式,使用XSSFWorkbookwb new XSSFWorkbook(in);}workbooks.add(wb);// 关闭当前ZipEntry,确保不会重复处理zis.closeEntry();// 获取下一条目zipEntry zis.getNextEntry();}}}} catch (IOException e) {throw new RuntimeException(e);}finally {if (zis ! null) {try {zis.close();} catch (IOException e) {throw new RuntimeException(e);}}}return workbooks;}3、技术要点 1ZipInputStream.getNextEntry()方法 【1】该方法可获取到zip包内的各级目录及各级目录下的文件并不需要进行递归处理。  【2】ZipInputStream实例调用该方法后将会指向获取到的条目这时使用ZipInputStream实例操作的就是获取到的ZipEntry对象。可通过ZipInputStream.closeEntry()和ZipInputStream.getNextEntry()迭代到下一个ZipEntry条目。 2为什么选择ByteArrayInputStream和ByteArrayInputStream获取Workbook 二者是在内存中处理字节的IO流不同于磁盘IO流会在磁盘中创建临时文件读写处理速度会更快在内存中处理数据也符合业务需求。 3为什么不使用Workbook wb WorkbookFactory.create(zis);直接转化 实测使用WorkbookFactory.create(zis)会关闭流导致无法读取后续条目
http://www.w-s-a.com/news/222264/

相关文章:

  • 西安建设局网站小孩把巴塘网站建设
  • 做网站 客户一直要求改郑州做优惠券网站的公司
  • 专门做特卖的网站是什么东北石油大学秦皇岛吧
  • 网站建设需要云主机吗wordpress 下载数据表插件
  • 集团网站建设哪个好石龙镇仿做网站
  • 网站建设费税率是多少项目备案信息查询
  • 网站开发php有哪些权威发布型舆情回应
  • 凡科建站有哪些弊端百度手机怎么刷排名多少钱
  • 南山网站公司在招聘网站做销售工资高吗
  • 百度联盟怎么加入赚钱合肥seo按天收费
  • 网站建设与用户需求分析加盟店排行榜加盟项目排行榜
  • 柳州市诚信体系建设网站wordpress建手机网站吗
  • 网站策划书是什么水产公司网站源码
  • 温州做网站多少钱网站服务器机房
  • 网站公司设计 网站首页什么网站专门做图片
  • 书店网站怎么做网站点击快速排名
  • 太阳镜商城网站建设公司做网站
  • 如何制作个人作品网站宣传片拍摄合同
  • 关于微网站策划ppt怎么做做插画的网站
  • 做设计网上揽活哪个网站最好中企动力算大厂吗
  • 电子商务网站开发常用工具牡丹江吧
  • 四川成都网站制作公司wordpress 获取某个分类的文章
  • wordpress 编辑器推动门户网站建设不断优化升级
  • 做游戏网站的前景温江区建设局网站
  • 济南做微网站推广做网站seo优化总结
  • 巢湖网站建设电话长沙大型互联网公司
  • wordpress站群主机海南人
  • 云南网站建设维护商业网站建设教程
  • 云南省滇中引水工程建设管理局网站jsp个人网站设计
  • 网站建设 域名业务 邮箱互联网装饰网站