- 浏览: 318255 次
- 性别:
- 来自: 深圳
-
文章分类
最新评论
-
every:
真JB坑爹,标题redhat6 结果用的时5.3 ,尼玛标 ...
RedHat Linux 6企业版开启VNC Server远程桌面 -
okooo00:
五年光景蹉跎,最终还是烂尾了,从此人生又少了一样追求
《凡人修仙传》点评 -
mikey_5:
原来是这样子判断数据格式的,Thanks
POI读取Excel浅谈 -
jveqi:
tracy_meimei 写道楼主,我试过N多次了,在我的my ...
MyEclipse6.5 下Axis2插件的下载和安装 -
jsx112:
...
MySQL select into和SQL select into
先看代码,挨句解释:
一般遍历使用两种方式,1:得到总的行数和每行的列数,然后循环。2:使用迭代
先看第一种:
package com.golden.test; import java.io.File; import java.io.FileInputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; /** * * @author 崔素强 * */ public class PoiReadXls2 { public static void main(String[] args) { File f = new File("c:\\a.xls"); try { FileInputStream is = new FileInputStream(f); HSSFWorkbook wbs = new HSSFWorkbook(is); HSSFSheet childSheet = wbs.getSheetAt(0); // System.out.println(childSheet.getPhysicalNumberOfRows()); System.out.println("有行数" + childSheet.getLastRowNum()); for (int j = 0; j < childSheet.getLastRowNum(); j++) { HSSFRow row = childSheet.getRow(j); // System.out.println(row.getPhysicalNumberOfCells()); // System.out.println("有列数" + row.getLastCellNum()); if (null != row) { for (int k = 0; k < row.getLastCellNum(); k++) { HSSFCell cell = row.getCell(k); if (null != cell) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: // 数字 System.out.print(cell.getNumericCellValue() + " "); break; case HSSFCell.CELL_TYPE_STRING: // 字符串 System.out.print(cell.getStringCellValue() + " "); break; case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean System.out.println(cell.getBooleanCellValue() + " "); break; case HSSFCell.CELL_TYPE_FORMULA: // 公式 System.out.print(cell.getCellFormula() + " "); break; case HSSFCell.CELL_TYPE_BLANK: // 空值 System.out.println(" "); break; case HSSFCell.CELL_TYPE_ERROR: // 故障 System.out.println(" "); break; default: System.out.print("未知类型 "); break; } } else { System.out.print("- "); } } } System.out.println(); } } catch (Exception e) { e.printStackTrace(); } } }
得到Excel的文件然后读取,这个很简单。关键有两个地方,也许在网上会看到有的这样使用有的那样使用。
System.out.println("有行数" + childSheet.getLastRowNum());
System.out.println(childSheet.getPhysicalNumberOfRows());
System.out.println("有列数" + row.getLastCellNum());
System.out.println(row.getPhysicalNumberOfCells());
如果人都拷贝代码进行使用了,不知道有什么区别。太多的区别不知道,但是有一点我发现了,那就是如果中间各行或者隔列的话getPhysicalNumberOfRows和getPhysicalNumberOfCells就不能读取到所有的行和列了。
再者,一定要对单元格的格式进行判断switch (cell.getCellType()),不同的单元格格式使用不同的方法。最后加上为止类型,以防万一。
而且在数字类型里,又分为了纯数字和时间格式:
case HSSFCell.CELL_TYPE_NUMERIC: // 数值型 if (HSSFDateUtil.isCellDateFormatted(cell)) { // 如果是date类型则 ,获取该cell的date值 value = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()).toString(); } else { // 纯数字 value = String.valueOf(cell.getNumericCellValue()); }
还有一种迭代的方法:
package com.golden.test; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * * @author 崔素强 * */ public class PoiReadXls { @SuppressWarnings( { "unchecked", "deprecation" }) public static void main(String[] args) { File f = new File("c:\\a.xls"); try { InputStream input = new FileInputStream(f); POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(0); Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); // System.out.print("行:" + row.getRowNum() + " "); Iterator cells = row.cellIterator(); while (cells.hasNext()) { HSSFCell cell = (HSSFCell) cells.next(); // System.out.println("列:" + cell.getCellNum()); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: // 数字 System.out.print(cell.getNumericCellValue() + " "); break; case HSSFCell.CELL_TYPE_STRING: // 字符串 System.out.print(cell.getStringCellValue() + " "); break; case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean System.out.println(cell.getBooleanCellValue() + " "); break; case HSSFCell.CELL_TYPE_FORMULA: // 公式 System.out.print(cell.getCellFormula() + " "); break; case HSSFCell.CELL_TYPE_BLANK: // 空值 System.out.println(" "); break; case HSSFCell.CELL_TYPE_ERROR: // 故障 System.out.println(" "); break; default: System.out.print("未知类型 "); break; } } System.out.println(); } } catch (IOException ex) { ex.printStackTrace(); } } }
这种方法,如果数据的紧凑的,使用还是方便的,但是我发现,如果是空行或者是空列,他就会隔过去。具体的自己试试就知道了。
另外,也能看到这里得到Excel文件的方式是通过File,如果要引用到Struts2里,这是很简单的,因为Struts2上传时Action里定义的就是File或者File数组。
发表评论
-
Mina开发笔记
2014-12-08 20:08 0import java.nio.charset.Ch ... -
Excel中日期与数字的转换代码
2014-05-30 23:24 2794public static void main(St ... -
求一个月有几周
2013-02-22 18:19 1213int year = 2013; int month= ... -
The error is weblogic.descriptor.DescriptorException: Unmarshaller failed
2012-09-13 11:58 2341部署 web project 到weblogic92(换成10 ... -
ecllipse无法启动,一直停留刚开始启动界面
2012-07-18 11:47 24351、 故障发生原因 :由于电脑配置较差 ,经常死机 或者 ... -
启动JBOSS,提示错误1098端口被占用的解决方案
2012-06-25 10:25 1812问题:启动JBOSS,提示错误1098端口被占用 方案一: ... -
Version 1.3.1_01 of the JVM is not suitable for this product.Version:1.4.1 or gr
2012-05-30 17:06 1175Version 1.3.1_01 of the JVM is ... -
java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.supp
2012-04-10 21:51 1993java.lang.AbstractMethodError: ... -
org.apache.axis2.databinding.utils.BeanUtil.getPullParser错误
2012-03-28 12:56 1962在开发ssh+axis2的webservice应用中,报这个错 ... -
增加eclipse启动的Tomcat内存的
2011-09-30 10:04 8937JAVA程序启动时JVM都会分配一个初始内存和最大内存给这 ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2011-09-26 10:02 12711、 PermGen space的全称� ... -
POI读取EXCEL教程
2011-09-24 14:22 1874一、Excel基础 二、HSSF概况 三、通过user ... -
有关java中的Date,String,Timestamp之间的转化问题
2011-09-22 17:10 1469一.获取系统当前时间: 1.System.out.print ... -
Hibernate温习(4)--三大类查询总结
2011-09-14 12:49 1387[url]Hibernate目前总共分为三大类查询:creti ... -
hibernate 关系映射 annotation 版
2011-09-06 16:29 1564关于mappedBy 双向关联� ... -
hibernate+spring 注解 对事务的一些信息
2011-09-06 16:27 1641事务注解说明@Transactional 类事务说明机制 ... -
JPA一对多,多对多映射
2011-09-03 23:46 4077JPA(Java Persistence API)是Sun ... -
Rational Rose 生成java代码
2011-08-25 10:26 1975一,正向工程 1、设置默认语言为Java,Tools- ... -
SOA服务设计原则-转载
2011-08-24 10:27 1160这一部分是有关整个 SOA 系统的指南,代表了在建立系统时需要 ... -
JAVA设计模式之单例模式
2011-08-10 14:37 979一、单例模式的介绍 Singleton是一种创建型模式 ...
相关推荐
本文将围绕“浅谈jxl解析excel ——复制、修改excel表”这一主题,深入探讨JXL库的使用方法和关键知识点。 首先,JXL库提供了丰富的API,使得开发人员可以方便地操作Excel文件的各个部分,如工作表、单元格、样式等...
物联网实战项目
内容概要:文章介绍了基于Matlab的PSO-LSTM(粒子群算法优化长短期记忆神经网络)实现多输入分类预测的完整流程。针对大数据时代背景下金融、医疗、能源等行业面临的多变量时序数据分析挑战,传统机器学习方法难以有效捕捉数据间的时序依赖性和长期依赖关系。LSTM虽能很好应对长期依赖性问题,却因自身超参数优化难题限制性能发挥。为此,文中提出了融合PSO与LSTM的新思路。通过粒子群优化算法自动化选取LSTM的最优超参数配置,在提高预测精度的同时,加速模型训练过程。项目详细展示了该方法在金融预测、气象预报等多个领域的应用前景,并用具体代码实例演示了如何设计PSO-LSTM模型,其中包括输入层接收多输入特征、经由PSO优化超参数设定再进入LSTM层完成最终预测输出。 适用人群:从事机器学习、深度学习研究的专业人士或研究生,尤其是专注于时间序列数据挖掘以及希望了解如何利用进化算法(如PSO)优化神经网络模型的研究人员。 使用场景及目标:①对于具有多维度时序特性的数据集,本模型可用于精准分类预测任务;②旨在为不同行业的分析师提供一种高效的工具去解决实际问题中复杂的时变关系分析;③通过案例代码的学习使开发者掌握创建自己的PSO-LSTM模型的技术,从而实现在各自专业领域的高准确性预测。 其他说明:需要注意的是,在具体实施PSO-LSTM算法过程中可能会遇到诸如粒子群算法的收敛问题、LSTM训练中的梯度管理以及数据集质量问题等挑战,文中提及可通过改进优化策略和加强前期准备工作予以解决。此外,由于计算成本较高,还需考虑硬件设施是否足够支撑复杂运算需求。
三菱FX5U PLC与台达DT330温控器通讯程序:实现设定温度、读取温度及输出启停控制功能的稳定可靠解决方案,三菱FX5U与台达DT330温控器通讯程序详解:通过PLC与触摸屏实现精确温度控制与启停操作,三菱FX5U与台达DT330温控器通讯程序+输出启停控制(SL5U-9) 功能:通过三菱FX5U本体485口,结合触摸屏网口,实现对台达DT330温控器 设定温度,读取温度,输出启停控制。 反应灵敏,通讯稳定可靠。 器件:三菱FX5U PLC,台达DT330温控器,昆仑通态TPC7022NI触摸屏。 说明:的是程序,带注释,带温控器手册,接线,参数设置都提供。 通讯稳定可靠,实用有效。 ,三菱FX5U; 通讯程序; 输出启停控制; 温度控制; 触摸屏接口; 温控器手册; 参数设置。,三菱FX5U与台达DT330温控器通讯启停控制程序
内容概要:本文介绍了论文“Efficient Cooperative Spectrum Sensing in UAV-Assisted Cognitive Wireless Sensor Networks”的复现实现,重点涉及系统模型建立、信号检测与投票规则的实现及其仿真实验。文章提供了四个关键组成部分的具体实现步骤:首先是参数设置,包括仿真参数的配置;接着是信号模型与能量检测,涵盖信号的存在与否的判定逻辑;第三部分是实现四种投票规则(CVR、SVR、S1 和 DS1)的细节;最后一部分展示了仿真实验的方法,并通过绘制检测性能图和样本大小图来比较不同投票规则的效用。 适用人群:适用于具有基本编程能力并且对无线传感网络频谱感知研究感兴趣的科研人员和技术爱好者。 使用场景及目标: ① 探索不同频谱感知投票规则的表现; ② 提供具体的编程范例帮助理解和实施合作频谱感知道; ③ 分析多种投票算法下的最优方案; ④ 评估无人机辅助环境下频谱检测的实际效果。 其他说明:本文不仅实现了原始论文的技术路线,还探讨了一些可能的改进方向,如增强信号模型、分析投票规则复杂度、参数灵敏性分析、引入机器学
win32汇编环境,窗口程序使用树形视图示例二
公司年会抽奖程序可定制化的抽奖应用,炫酷3D球体,可用于年会抽奖等活动,支持奖品、人员、界面、图片音乐配置。
COMSOL模拟锂枝晶生长过程:电势场与流场耦合影响枝晶形貌,基于Comsol模拟的锂枝晶生长与流场耦合电势场模型:浓度场变化对枝晶形貌的影响研究,comsol 锂枝晶加流动耦合电势场模型,浓度场生长过程中添加流场,改变枝晶形貌。 ,关键词:COMSOL; 锂枝晶; 流动耦合; 电势场模型; 浓度场生长; 流场控制; 枝晶形貌变化。,COMSOL锂枝晶流场耦合电势模型
TM_TM104SDHG30_V2.0
物联网云平台基础架构_Shiro权限管理_通用CURD_服务_1741161944
智能家居_Qt_跨平台客户端_家居管理_1741167066.zip
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
使用delphi 12 实现的走马灯
基于标准IEEE 33节点配电网的Simulink建模:有参考文献及数据来源,可输出节点电压电流数据用于潮流计算与风光并网研究,基于标准IEEE 33节点配电网的Simulink建模:数据驱动的潮流计算与风光并网研究,标准IEEE33节点配电网, simulink建模,有参考文献,有数据来源。 可输出节点电压、电流数据,适用于潮流计算,在此基础上可实现风光并网研究。 ,核心关键词:标准IEEE33节点配电网; Simulink建模; 参考文獻; 数据来源; 输出节点电压电流数据; 潮流计算; 风光并网研究。,IEEE33节点配电网Simulink建模:数据驱动的潮流计算与风光并网研究
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
物联网实战项目
三菱FX3U与欧姆龙E5CC温控器通讯实战:全方位控制及稳定通讯程序,三菱FX3U与欧姆龙E5CC温控器通讯实战:多功能设置与监控程序实战操作,PLC通讯调试解析,三菱FX3U与欧姆龙E5CC温控器通讯实战程序 功能:通过昆仑通态触摸屏,三菱FX3U 485BD板,实现对欧姆龙E5CC温控器 设定温度值,读取实际温度,设定探头类型,设定报警值,设定报警类型,报警上下限功能。 反应灵敏,通讯稳定可靠。 器件:三菱FX3U PLC,FX3U 485BD,欧姆龙E5CC RX2ASM 802温控器,昆仑通态TPC7062KD触摸屏。 附送威纶通程序 说明:是程序,带注释,带温控器手册,接线,参数设置都提供。 通讯稳定可靠,实用有效。 ,核心关键词:三菱FX3U; 欧姆龙E5CC温控器; 昆仑通态触摸屏; 485BD板; 设定温度值; 读取实际温度; 探头类型设定; 报警值设定; 报警类型设定; 报警上下限功能; 通讯稳定可靠; 威纶通程序; 参数设置。,三菱FX3U与欧姆龙E5CC温控器通讯程序:实现温度控制与报警功能的实战指南
基于Boost型PFC与移相全桥AC-DC电源设计的仿真研究:前级PFC平均电流控制与后级移相控制技术分析,基于Boost型PFC与移相全桥AC-DC电源设计仿真——10kW功率的电压可调600V电源系统设计与应用,基于Psim的Boost型 PFC+移相全桥AC-DC电源设计仿真 1、前级电网输入220AC,50Hz,中间级母线电压为600V,后级600V输入,547V输出,电压可调,功率10kW 2、前级基于Boost电路PFC,平均电流控制,电压电流双闭环 3、后级全桥内移相和不控整流,移相控制,单电压环 4、有简要的电路参数设计 ,基于Psim的Boost型PFC; 移相全桥AC-DC电源设计; 220AC输入; 50Hz; 600V母线电压; 电压可调的10kW功率输出; Boost电路PFC; 平均电流控制; 电压电流双闭环控制; 全桥内移相控制; 不控整流; 移相控制单电压环; 电路参数设计。,基于Boost型PFC与移相全桥AC-DC电源设计的仿真研究
NewLifeX_NewLifeIoT_1741166206.zip
Pem电解槽三维仿真模型:氢气扩散与多孔介质流动态模拟研究,不涉及阴极水路与水电解槽节点分析,Pem电解槽三维仿真模型:氢气扩散与多孔介质流模拟研究,无阴极通水与二次电流分布的浓物质传递分析,Pem电解槽三维仿真模型,阴极不通水,只考虑氢气的扩散,使用二次电流分布浓物质传递自由与多孔介质流,不使用水电解槽节点。 ,核心关键词:Pem电解槽;三维仿真模型;阴极不通水;氢气扩散;二次电流分布;浓物质传递;多孔介质流;不使用水电解槽节点。,Pem电解槽三维模型:氢气扩散、二次电流浓物质传递研究