免费最新如何建设网站教程视频做化妆品销售网站如何

bicheng/2026/1/20 15:48:05/文章来源:
免费最新如何建设网站教程视频,做化妆品销售网站如何,wordpress翻译公司,平台公司属于什么行业POI 和 easyExcel 讲解转自狂神老师#xff0c;仅作为个人笔记使用一、POI常用进程1、将用户信息导出为excel表格(导出数据....)2、将Excel表中的信息录入到网站数据库(习题上传....)开发中经常会设计到excel的处理#xff0c;如导出Excel#xff0c;导入Excel到数据库中仅作为个人笔记使用一、POI常用进程1、将用户信息导出为excel表格(导出数据....)2、将Excel表中的信息录入到网站数据库(习题上传....)开发中经常会设计到excel的处理如导出Excel导入Excel到数据库中操作Excel目前比较流行的就是 Apache POI 和 阿里巴巴的 easyExcel Apache POIeasyExcelEasyExcel 是阿里巴巴开源的一个excel处理框架以使用简单、节省内存著称。EasyExcel 能大大减少占用内存的主要原因是在解析 Excel 时没有将文件数据一次性全部加载到内存中而是从磁盘上一行行读取数据逐个解析。下图是 EasyExcel 和 POI 在解析Excel时的对比图。1、POI-Excel写创建项目1、建立一个空项目 Bilibili-狂神说java创建普通Maven的Moudle kuang-poi2、引入pom依赖org.apache.poipoi3.9org.apache.poipoi-ooxml3.9joda-timejoda-time2.10.1junitjunit4.1203 | 07 版本的写就是对象不同方法一样的需要注意2003 版本和 2007 版本存在兼容性的问题03最多只有 65535 行1、工作簿2、工作表3、行4、列03版本Testpublic void testWrite03() throws Exception {// 1、创建一个工作簿Workbook workbook new HSSFWorkbook();// 2、创建一个工作表Sheet sheet workbook.createSheet(狂神观众统计表);// 3、创建一个行 (1,1)Row row1 sheet.createRow(0);// 4、创建一个单元格Cell cell11 row1.createCell(0);cell11.setCellValue(今日新增观众);// (1,2)Cell cell12 row1.createCell(1);cell12.setCellValue(666);// 第二行 (2,1)Row row2 sheet.createRow(1);Cell cell21 row2.createCell(0);cell21.setCellValue(统计时间);// (2,2)Cell cell22 row2.createCell(1);String time new DateTime().toString(yyyy-MM-dd HH:mm:ss);cell22.setCellValue(time);// 生成一张表(IO 流) 03 版本就是使用 xls结尾FileOutputStream fileOutputStream new FileOutputStream(PATH 狂神观众统计表03.xls);// 输出workbook.write(fileOutputStream);// 关闭流fileOutputStream.close();System.out.println(狂神观众统计表03 生成完毕);}07版本Testpublic void testWrite07() throws Exception {// 1、创建一个工作簿 07Workbook workbook new XSSFWorkbook();// 2、创建一个工作表Sheet sheet workbook.createSheet(狂神观众统计表);// 3、创建一个行 (1,1)Row row1 sheet.createRow(0);// 4、创建一个单元格Cell cell11 row1.createCell(0);cell11.setCellValue(今日新增观众);// (1,2)Cell cell12 row1.createCell(1);cell12.setCellValue(666);// 第二行 (2,1)Row row2 sheet.createRow(1);Cell cell21 row2.createCell(0);cell21.setCellValue(统计时间);// (2,2)Cell cell22 row2.createCell(1);String time new DateTime().toString(yyyy-MM-dd HH:mm:ss);cell22.setCellValue(time);// 生成一张表(IO 流) 03 版本就是使用 xlsx结尾FileOutputStream fileOutputStream new FileOutputStream(PATH 狂神观众统计表07.xlsx);// 输出workbook.write(fileOutputStream);// 关闭流fileOutputStream.close();System.out.println(狂神观众统计表03 生成完毕);}注意对象的一个区别文件后缀数据批量导入大文件写HSSF缺点最多只能处理65536行否则会抛出异常java.lang.IllegalArgumentException: Invalid row number (65536) outside allowable range (0..65535)优点过程中写入缓存不操作磁盘最后一次性写入磁盘速度快Testpublic void testWrite03BigData() throws IOException {// 时间long begin System.currentTimeMillis();// 创建一个薄Workbook workbook new HSSFWorkbook();// 创建表Sheet sheet workbook.createSheet();// 写入数据for (int rowNum 0; rowNum 65537; rowNum) {Row row sheet.createRow(rowNum);for (int cellNum 0; cellNum 10 ; cellNum) {Cell cell row.createCell(cellNum);cell.setCellValue(cellNum);}}System.out.println(over);FileOutputStream outputStream new FileOutputStream(PATH testWrite03BigData.xls);workbook.write(outputStream);outputStream.close();long end System.currentTimeMillis();System.out.println((double) (end-begin)/1000);}大文件写XSSF缺点写数据时速度非常慢非常耗内存也会发生内存溢出如100万条优点可以写较大的数据量如20万条Testpublic void testWrite07BigData() throws IOException {// 时间long begin System.currentTimeMillis();// 创建一个薄Workbook workbook new XSSFWorkbook();// 创建表Sheet sheet workbook.createSheet();// 写入数据for (int rowNum 0; rowNum 100000; rowNum) {Row row sheet.createRow(rowNum);for (int cellNum 0; cellNum 10 ; cellNum) {Cell cell row.createCell(cellNum);cell.setCellValue(cellNum);}}System.out.println(over);FileOutputStream outputStream new FileOutputStream(PATH testWrite07BigData.xlsx);workbook.write(outputStream);outputStream.close();long end System.currentTimeMillis();System.out.println((double) (end-begin)/1000);}大文件写SXSSF优点可以写非常大的数据量如100万条甚至更多条写数据速度快占用更少的内存注意过程中会产生临时文件需要清理临时文件默认由100条记录被保存在内存中如果超过这数量则最前面的数据被写入临时文件如果想自定义内存中数据的数量可以使用new SXSSFWorkbook ( 数量 )Testpublic void testWrite07BigDataS() throws IOException {// 时间long begin System.currentTimeMillis();// 创建一个薄Workbook workbook new SXSSFWorkbook();// 创建表Sheet sheet workbook.createSheet();// 写入数据for (int rowNum 0; rowNum 100000; rowNum) {Row row sheet.createRow(rowNum);for (int cellNum 0; cellNum 10 ; cellNum) {Cell cell row.createCell(cellNum);cell.setCellValue(cellNum);}}System.out.println(over);FileOutputStream outputStream new FileOutputStream(PATH testWrite07BigDataS.xlsx);workbook.write(outputStream);outputStream.close();// 清除临时文件((SXSSFWorkbook) workbook).dispose();long end System.currentTimeMillis();System.out.println((double) (end-begin)/1000);}SXSSFWorkbook-来至官方的解释实现“BigGridDemo”策略的流式XSSFWorkbook版本。这允许写入非常大的文件而不会耗尽内存因为任何时候只有可配置的行部分被保存在内存中。请注意仍然可能会消耗大量内存这些内存基于您正在使用的功能例如合并区域注释......仍然只存储在内存中因此如果广泛使用可能需要大量内存。再使用 POI的时候内存问题 Jprofile2、POI-Excel读03|0703版本Testpublic void testRead03() throws Exception {// 获取文件流FileInputStream inputStream new FileInputStream(PATH kuang-poi狂神观众统计表03.xls);// 1、创建一个工作簿。 使用excel能操作的这边他都可以操作Workbook workbook new HSSFWorkbook(inputStream);// 2、得到表Sheet sheet workbook.getSheetAt(0);// 3、得到行Row row sheet.getRow(0);// 4、得到列Cell cell row.getCell(1);// 读取值的时候一定需要注意类型// getStringCellValue 字符串类型// System.out.println(cell.getStringCellValue());System.out.println(cell.getNumericCellValue());inputStream.close();}07版本Testpublic void testRead07() throws Exception {// 获取文件流FileInputStream inputStream new FileInputStream(PATH kuang-poi狂神观众统计表07.xlsx);// 1、创建一个工作簿。 使用excel能操作的这边他都可以操作Workbook workbook new XSSFWorkbook(inputStream);// 2、得到表Sheet sheet workbook.getSheetAt(0);// 3、得到行Row row sheet.getRow(0);// 4、得到列Cell cell row.getCell(1);// 读取值的时候一定需要注意类型// getStringCellValue 字符串类型// System.out.println(cell.getStringCellValue());System.out.println(cell.getNumericCellValue());inputStream.close();}注意获取值的类型即可读取不同的数据类型(最麻烦的就是这里了)Testpublic void testCellType() throws Exception {// 获取文件流FileInputStream inputStream new FileInputStream(PATH 明细表.xls);// 创建一个工作簿。 使用excel能操作的这边他都可以操作Workbook workbook new HSSFWorkbook(inputStream);Sheet sheet workbook.getSheetAt(0);// 获取标题内容Row rowTitle sheet.getRow(0);if (rowTitle!null) {// 一定要掌握int cellCount rowTitle.getPhysicalNumberOfCells();for (int cellNum 0; cellNum cellCount; cellNum) {Cell cell rowTitle.getCell(cellNum);if (cell!null){int cellType cell.getCellType();String cellValue cell.getStringCellValue();System.out.print(cellValue | );}}System.out.println();}// 获取表中的内容int rowCount sheet.getPhysicalNumberOfRows();for (int rowNum 1; rowNum rowCount ; rowNum) {Row rowData sheet.getRow(rowNum);if (rowData!null){// 读取列int cellCount rowTitle.getPhysicalNumberOfCells();for (int cellNum 0; cellNum cellCount ; cellNum) {System.out.print([ (rowNum1) - (cellNum1) ]);Cell cell rowData.getCell(cellNum);// 匹配列的数据类型if (cell!null) {int cellType cell.getCellType();String cellValue ;switch (cellType) {case HSSFCell.CELL_TYPE_STRING: // 字符串System.out.print(【String】);cellValue cell.getStringCellValue();break;case HSSFCell.CELL_TYPE_BOOLEAN: // 布尔System.out.print(【BOOLEAN】);cellValue String.valueOf(cell.getBooleanCellValue());break;case HSSFCell.CELL_TYPE_BLANK: // 空System.out.print(【BLANK】);break;case HSSFCell.CELL_TYPE_NUMERIC: // 数字(日期、普通数字)System.out.print(【NUMERIC】);if (HSSFDateUtil.isCellDateFormatted(cell)){ // 日期System.out.print(【日期】);Date date cell.getDateCellValue();cellValue new DateTime(date).toString(yyyy-MM-dd);}else {// 不是日期格式防止数字过长System.out.print(【转换为字符串输出】);cell.setCellType(HSSFCell.CELL_TYPE_STRING);cellValue cell.toString();}break;case HSSFCell.CELL_TYPE_ERROR:System.out.print(【数据类型错误】);break;}System.out.println(cellValue);}}}}inputStream.close();}注意类型转换问题计算公式 (了解即可)Testpublic void testFormula() throws Exception {FileInputStream inputStream new FileInputStream(PATH 公式.xls);Workbook workbook new HSSFWorkbook(inputStream);Sheet sheet workbook.getSheetAt(0);Row row sheet.getRow(4);Cell cell row.getCell(0);// 拿到计算公司 evalFormulaEvaluator FormulaEvaluator new HSSFFormulaEvaluator((HSSFWorkbook)workbook);// 输出单元格的内容int cellType cell.getCellType();switch (cellType){case Cell.CELL_TYPE_FORMULA: // 公式String formula cell.getCellFormula();System.out.println(formula);// 计算CellValue evaluate FormulaEvaluator.evaluate(cell);String cellValue evaluate.formatAsString();System.out.println(cellValue);break;}}二、EasyExcel操作导入依赖com.alibabaeasyexcel2.2.0-beta21、写入测试1.1、创建对象Datapublic class DemoData {ExcelProperty(字符串标题)private String string;ExcelProperty(日期标题)private Date date;ExcelProperty(数字标题)private Double doubleData;/*** 忽略这个字段*/ExcelIgnoreprivate String ignore;}1.2、拿到实体类里的值String PATH D:\\Project\\IdeaProject\\Bilibili-狂神说java\\;private List data() {List list new ArrayList();for (int i 0; i 10; i) {DemoData data new DemoData();data.setString(字符串 i);data.setDate(new Date());data.setDoubleData(0.56);list.add(data);}return list;}1.3、将list写入Excel// 根据list 写入excelTestpublic void simpleWrite() {// 写法1String fileName PATH EasyTest.xlsx;// 这里 需要指定写用哪个class去写然后写到第一个sheet名字为模板 然后文件流会自动关闭// write (fileName, 格式类)// sheet (表明)// doWrite (数据)EasyExcel.write(fileName, DemoData.class).sheet(模板).doWrite(data());}2、读取测试2.1、对象2.2、监听器// 有个很重要的点 DemoDataListener 不能被spring管理要每次读取excel都要new,然后里面用到spring可以构造方法传进去public class DemoDataListener extends AnalysisEventListener {private static final Logger LOGGER LoggerFactory.getLogger(DemoDataListener.class);private static final int BATCH_COUNT 5;List list new ArrayList();private DemoDAO demoDAO;public DemoDataListener() {// 这里是demo所以随便new一个。实际使用如果到了spring,请使用下面的有参构造函数demoDAO new DemoDAO();}public DemoDataListener(DemoDAO demoDAO) {this.demoDAO demoDAO;}// 读取数据会执行 invoke 方法// DemoData 类型// AnalysisContext 分析上问Overridepublic void invoke(DemoData data, AnalysisContext context) {System.out.println(JSON.toJSONString(data));list.add(data);// 达到BATCH_COUNT了需要去存储一次数据库防止数据几万条数据在内存容易OOMif (list.size() BATCH_COUNT) {saveData(); // 持久化逻辑!// 存储完成清理 listlist.clear();}}/*** 所有数据解析完成了 都会来调用** param context*/Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 这里也要保存数据确保最后遗留的数据也存储到数据库saveData();LOGGER.info(所有数据解析完成);}/*** 加上存储数据库*/private void saveData() {LOGGER.info({}条数据开始存储数据库, list.size());demoDAO.save(list);LOGGER.info(存储数据库成功);}}2.3、持久层/*** 假设这个是你的DAO存储。当然还要这个类让spring管理当然你不用需要存储也不需要这个类。**/public class DemoDAO {public void save(List list) {// 持久化操作// 如果是mybatis,尽量别直接调用多次insert,自己写一个mapper里面新增一个方法batchInsert,所有数据一次性插入}}2.4、测试代码Testpublic void simpleRead() {// 有个很重要的点 DemoDataListener 不能被spring管理要每次读取excel都要new,然后里面用到spring可以构造方法传进去// 写法1String fileName PATH EasyTest.xlsx;// 这里 需要指定读用哪个class去读然后读取第一个sheet 文件流会自动关闭// 重点注意读取的逻辑 DemoDataListenerEasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();}固定套路1、写入固定类格式进行写入2、读取根据监听器设置的规则进行读取小结-学习方式了解面向对象的思想学会面向接口编程理解使用测试API作业把EasyExcel 的所有api都测试一下(2~3小时)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设阿里云搭建个人网站徐州网站开发信息

正题 luogu 7302 金牌导航 数据结构优化DP-4 题目大意 在坐标轴上会出现n个金币,第i个金币tit_iti​时在wiw_iwi​出现(只出现一个单位时间),价值为sis_isi​,当你tit_iti​时在wiw_iwi​,就能获得该金币…

想找在家做的兼职 有什么网站吗做拼货商城网站

转载链接:http://eric-gcm.iteye.com/blog/1127734 选择某些行作为需要的数据 SELECT id,dbname FROM index into outfile "d://aaa.txt"; 一般大家都会用 “SELECT INTO OUTFIL”将查询结果导出到文件,但是这种方法不能覆盖或者添加到已经创建…

阳江网站网站建设旅游网页设计作业

Double 4 VR智能互动系统是一种集成了虚拟现实技术、人工智能和物联网技术的教学系统。计算机通过模拟真实的轨道交通环境,为学生提供了一个高度仿真的学习环境,帮助他们更好地理解和掌握轨道交通的相关知识和技能。 首先,Double 4 VR智能互动…

山东做网站公司哪家好如何查询一个网站的空间大小

文章目录 1. 概念介绍2. 实现方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"自定义TimePicker组件"相关的内容,本章回中将继续介绍该组件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在上一章回…

广州网站排名优化服务自己做的网站打开很慢

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

网站开发的技术内容网站备案有什么坏处

一:题目 给你一个字符串 s ,由 n 个字符组成,每个字符不是 ‘X’ 就是 ‘O’ 。 一次 操作 定义为从 s 中选出 三个连续字符 并将选中的每个字符都转换为 ‘O’ 。注意,如果字符已经是 ‘O’ ,只需要保持 不变 。 返…

做网站的商标是哪类专业做网站方案ppt

Python将Labelme文件的真实框和预测框绘制到图片上 前言前提条件相关介绍实验环境Python将Labelme文件的标注信息绘制到图片上代码实现输出结果 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入Python日常小操作专…

网站建设广东商丘市做网站的公司

自动微分是一种计算张量(tensors)的梯度(gradients)的技术,它在深度学习中非常有用。自动微分的基本思想是: 自动微分会记录数据(张量)和所有执行的操作(以及产生的新张…

上海网站制作哪家奿网络营销推广公司获客

java开发人员我已经阅读了自己的软件开发书籍,并且发现发现一本我想多次阅读的书籍非常罕见。 但是,有时我会发现一本书,每次阅读时都会教给我新的东西。 这篇博客文章是对这些稀有宝石的致敬。 现在,我毫不犹豫地向您介绍了十本…

泰州网站建设制作网站开发需求分析模板

一款优质的猫罐头,必须满足三个要点:完整又均衡的营养配方、新鲜又优质的原料、以及科学可靠的生产工艺。 猫罐头的三个要素,一个都不能少。配方不均衡,营养就不足;原料不新鲜,生产出来的猫罐头就不优质&a…

佛山网站建设专业品牌山东省住房城乡建设厅查询网站

2019独角兽企业重金招聘Python工程师标准>>> 教你在C 程序里调用TI-BASIC程序,看看是否有人对这个感兴趣 昨天翻TIGCC的文档,先瞅了瞅FAQ,话说我看文档有个习惯,就是先看目录,再看FAQ,因为FAQ汇…

电商网站建设可行性分析湛江企业网站怎么建设

源宝导读:2020年11月6日,明源云在CIO峰会上正式对外发布了“天际开放平台”,这是明源云凝聚其20多年行业经验打造的一款企业级PaaS平台。本文将介绍我们对企业级PaaS平台的行业思考,以及为加速泛地产生态链数字化转型而做的技术创…

网站建设公司专业公司排名做网站注意什么

背景 笔者之前有一次不小心删除了原始的 docker-compose.yml 文件,不过正在运行的 Docker 容器还在,找了许久,发现一个方法可以从这些容器中生成一个等效的 Docker Compose 配置文件。本文将介绍使用 autocompose 工具从正在运行的容器中反向…

睢县做网站的公司wordpress广告代码

后台代理提醒简介 随着生活节奏的加快,我们有时会忘记一些重要的事情或日子,所以提醒功能必不可少。应用可能需要在指定的时刻,向用户发送一些业务提醒通知。例如购物类应用,希望在指定时间点提醒用户有优惠活动。为满足此类业务…

扬州住房与城乡建设局网站良品铺子vi设计手册

A 股个股资金流 API 数据接口 全量股票资金流数据,全量A股数据,最长30日历史数据 1. 产品功能 支持所有A股资金流数据查询;每日定时更新数据;支持多达 30 日历史数据查询;超高的查询效率,数据秒级返回&am…

建网站一般多少钱幸福里网站黑链怎么做的

题目 给定一个N * M矩阵,请先找出M个该矩阵中每列元素的最大值,然后输出这M个值中的最小值 补充说明: N和M的取值范围均为: [0,100] 示例1: 输入: [[1,2],[3,4]] 输出: 3 说明: 第一列元素为:1和3,最大值为3 第二列元素为: 2和4,最…

重庆企业品牌网站建设商店小程序

命令模式 一、原理与通俗理解二、项目开发日志功能三、Java源码中的命令模式四、总结优缺点以及使用经验 一、原理与通俗理解 命令模式将请求封装为一个命令对象,将发出请求的对象与执行请求的对象解耦。命令模式可以让你在不同时间点调用命令,将命令放入队列中,并实现对命令的…

做网站的费用如何入账建设网站报告

该标准计算输入 logits 和目标之间的交叉熵损失。 代码实战 该损失函数结合了nn.LogSoftmax()和nn.NLLLoss()两个函数。它在做分类(具体几类)训练的时候是非常有用的。在训练过程中,对于每个类分配权值,可选的参数权值应该是一个…

东凤网站建设自己动手建立网站3

制作项目应用镜像 主要步骤: Step1、准备项目应用程序包 Step2、编写Dockerfile及启动脚本 Step3、docker build 构建镜像 Step4、docker run 启动容器 Step5、docker exec 进入容器进行验证 Step6、镜像的导入导出 Step7、提交容器生成新镜像 Step1、准备项目应…

最火的做网站源码语言软件开发工资一般多少深圳

0.背景 一个接口可能需要调用 N 个其他服务的接口,这在项目开发中还是挺常见的。举个例子:用户请求获取订单信息,可能需要调用用户信息、商品详情、物流信息、商品推荐等接口,最后再汇总数据统一返回。 如果是串行(按…