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

博客网站模板下载开发系统网站建设

博客网站模板下载,开发系统网站建设,网页设计网站维护,简历模板手机版填写免费总结#xff1a;目前市面上流行的2种 EasyExcel和POI都不是真正的对物理excel文件进行追加导入。只是在缓存里面追加#xff0c;最后一次性写入#xff0c;并不能解决内存占用问题。 1.EasyExcel2.POI3.CSV 无非就是下面两种逻辑#xff1a; 1.for循环查询数据#xff0c;… 总结目前市面上流行的2种 EasyExcel和POI都不是真正的对物理excel文件进行追加导入。只是在缓存里面追加最后一次性写入并不能解决内存占用问题。 1.EasyExcel2.POI3.CSV 无非就是下面两种逻辑 1.for循环查询数据将数据写入缓存最后一次性写入excel。 2.将已有的excel通过FIleInputStream流读出来加载到内存当中然后获取对应sheet页的行数进行追加操作。 PS建议使用CSV文件格式直接使用Java原生的FileUtils追加写入 FileUtils.writeStringToFile(file, sb.toString(), GBK, true);下面来讲讲easyExcel、POI、csv相关的代码写法 要求 1.对表头进行排序过滤 2.对列进行排序过滤1.EasyExcel 官网地址EasyExcel官网 我们使用新版本的旧的对于字段排序/过滤都不支持dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion3.3.2/version/dependency//此为线程池异步导出 commonExecutor.execute(() - {File file null;ExcelWriter excelWriter null;try {file File.createTempFile(a, .xlsx);file.deleteOnExit();excelWriter EasyExcel.write(file, UserVO.class).head(headlist) // 表头传入一个list集合.includeColumnFieldNames(showColumnList) // 对于UserVO要展示的列集合.orderByIncludeColumn(true) // 是否根据showColumnList集合的顺序排序.autoCloseStream(true) // 自动关闭流.build();WriteSheet writeSheet EasyExcel.writerSheet(Sheet1).build();// 循环 200/页查询数据int pageNum 1;int pageSize 200;while (true) {ListUserVO voList getData(pageNum, pageSize); // getData根据业务实现// 将数据写入临时文件 此处循环追加就是写到内存里面excelWriter.write(voList , writeSheet);if (pageNum * pageSize count) {break;}pageNum;}// 数据处理完毕后刷盘写入物理文件excelWriter.finish();} catch (Exception e) {log.error(导出 异常: e.getMessage(), e);} finally {// 删除临时文件if (!Objects.isNull(file)) {file.delete();}} });2.POI 网传SXSSFWorkbook可以实现追加写入然后实操后其实是覆盖写入。 //SXSSFWorkbook 和 XSSFWorkbook 都差不多只是定义不同写法都差不多import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.streaming.SXSSFWorkbook;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.List;public class ExcelAppender {public static void main(String[] args) {String filePath C:\\Local\\Temp\\11.xlsx;// 构造一个查询数据的列表ListString queryDataList List.of(query4, query5, query6);// 加载已存在的 Excel 文件try (Workbook workbook new SXSSFWorkbook(new FileInputStream(new File(filePath)))) {Sheet sheet workbook.getSheetAt(0);// 获取已存在数据的最后一行索引int lastRowNum sheet.getLastRowNum();// 在最后一行索引的下一行开始追加写入查询数据int rowNum lastRowNum 1;for (String queryData : queryDataList) {Row row sheet.createRow(rowNum);Cell cell row.createCell(0);cell.setCellValue(queryData);}// 保存修改后的工作簿到文件try (FileOutputStream outputStream new FileOutputStream(new File(filePath))) {workbook.write(outputStream); System.out.println(查询数据已覆盖写入到 Excel 文件 filePath);} catch (IOException e) {e.printStackTrace();}} catch (IOException e) {e.printStackTrace();}} }3.CSV 来写我最终选择的写法CSV就是追加物理文件数据。很不错。 commonExecutor.execute(() - {File temp null;try {temp File.createTempFile(aaa, .csv);temp.deleteOnExit();ListListString fillData new ArrayList();// 1.初始化表头showNameList是表头集合有顺序的哈~fillData.add(ImmutableList.of(showNameList.toString()));// 2.循环 200/页查询数据int pageNum 1;int pageSize 200;while (true) {ListUserVO recordVOList getData(pageNum, pageSize);// 3.填充业务数据 我用的反射fillData.addAll(ExcelUtil.convertSortEntityListToDataList(showColumnList, recordVOList));StringBuilder sb new StringBuilder();for (ListString rowData : fillData) {sb.append(String.join(,, rowData));sb.append(System.lineSeparator());}try {FileUtils.writeStringToFile(temp, outPutStr, GBK, true);} catch (IOException e) {log.error(写入CSV 异常:{}, e.getMessage(), e);return;}if (pageNum * pageSize count) {break;}pageNum;fillData.clear();}} catch (Exception e) {log.error(导出 异常:{}, e.getMessage(), e);} finally {// 4.删除临时文件if (!Objects.isNull(temp)) {temp.delete();}} });当然会存在一定的问题比如csv文件打开时office全家桶会把日期格式转换比如 “2024-01-04 14:28:29” - “2024/1/4 14:28:29” 就看大家能不能接受了。
http://www.w-s-a.com/news/828146/

相关文章:

  • 做网站服务器有哪些电子商务网站建立
  • 网站开发的具体流程原材料价格查询网站
  • 深圳响应式网站建设深圳网站建设定制开发 超凡科技
  • 网站建设报价怎么差别那么大wordpress产品属性搭配
  • 高校网站建设情况报告范文pc建站网站
  • 做网站美工要学什么广东省建设厅网站首页
  • 深圳网站设计十年乐云seo网站建设 竞赛 方案
  • 新乡移动网站建设wordpress输出某一分类的文章
  • 花店网站开发设计的项目结构重庆网站建设培训班
  • 做网站的技术体系投资者互动平台官网
  • 北京网站建设公司哪家实惠企查查在线查询入口
  • 毕业设计做网站怎么样非微信官方网页自己做的网站
  • 昆明网站多端小程序设计重庆市住房和城乡建设厅网站
  • 网站制作技术人员国际新闻最新10条
  • 做同城特价的网站wordpress后台能修改模板文件
  • 网站信息可以边建设边组织产品展示网站源码php
  • 电子商务网站规划从哪些方面入手途牛企业网站建设方案
  • 莱阳网站定制易语言可以做网站嘛
  • 购物网站开发意义上海中小企业服务中心官网
  • 网站备案证书如何打开江苏网站建设电话
  • 深圳网站建设乐云seo搜索引擎优化seo目的
  • 中山城市建设集团网站网站建设设计基础
  • 网站开发流程莆田wordpress点播收费
  • 网站未及时续费浙江台州做网站的公司有哪些
  • 二级域名做网站好不好河源建网站
  • 公司网站的作用意义维护建设管理天津平台网站建设费用
  • 建设部网站如何下载国标规范上海影视公司
  • 企业官方网站地址通了网站建设
  • 专题网站可以做什么怎么做网站滑动图片部分h5
  • 什么是网站建设外包html 门户网站