java读取excel某个单元格的值_[转载]Java读取Excel中的单元格数据

目前网上能找到的读取Excel表格中数据的两种比较好的方案:PageOffice好用开发效率高;POI免费。供大家参考,针对具体情况选择具体方案。

1. PageOffice读取excel

48304ba5e6f9fe08f3fa1abda7d326ab.png

import com.zhuozhengsoft.pageoffice.*;

import com.zhuozhengsoft.pageoffice.excelreader.*;

//读取Excel单元格数据

Workbook workBook = new Workbook(request, response);

Sheet sheet = workBook.openSheet("Sheet1");

Table table = sheet.openTable("A1:F5");while (!table.getEOF()) {

//获取提交的数值

if (!table.getDataFields().getIsEmpty()) {

for(int i=0; i<6; i++){

String content = table.getDataFields().get(i).getText();

System.out.println(content);//输出单元格数据

}

}

//循环进入下一行

table.nextRow();

}

table.close();

workBook.close();

48304ba5e6f9fe08f3fa1abda7d326ab.png

这些代码只是在服务器端接收客户端提交的excel单元格数据,PageOffice真正的读取单元格数据工作是在客户端执行的,由于服务器端并没有对excel文件做任何读取操作,只接受一下数据就行,无需耗费大量资源去处理文件,也无需处理多个客户并发请求的问题,因为每个客户端都各自读取自己的数据,服务器端只接收数据保存到数据库。

2. poi读取excel

48304ba5e6f9fe08f3fa1abda7d326ab.png

package com.test.poi;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Iterator;

import org.apache.poi.hssf.extractor.ExcelExtractor;

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;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

public class ReadExcel {

public static void main(String[] args) throws Exception {

HSSFWorkbook wb = null;

POIFSFileSystem fs = null;

try {

fs = new POIFSFileSystem(new FileInputStream("e:\\workbook.xls"));

wb = new HSSFWorkbook(fs);

} catch (IOException e) {

e.printStackTrace();

}

HSSFSheet sheet = wb.getSheetAt(0);

HSSFRow row = sheet.getRow(0);

HSSFCell cell = row.getCell(0);

String msg = cell.getStringCellValue();

System.out.println(msg);

}

public static void method2() throws Exception {

InputStream is = new FileInputStream("e:\\workbook.xls");

HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(is));

ExcelExtractor extractor = new ExcelExtractor(wb);

extractor.setIncludeSheetNames(false);

extractor.setFormulasNotResults(false);

extractor.setIncludeCellComments(true);

String text = extractor.getText();

System.out.println(text);

}

public static void method3() throws Exception {

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream("e:\\workbook.xls"));

HSSFSheet sheet = wb.getSheetAt(0);

for (Iterator iter = (Iterator) sheet.rowIterator(); iter.hasNext();) {

Row row = iter.next();

for (Iterator iter2 = (Iterator) row.cellIterator(); iter2.hasNext();) {

Cell cell = iter2.next();

String content = cell.getStringCellValue();// 除非是sring类型,否则这样迭代读取会有错误

System.out.println(content);

}

}

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

注意:HSSFWorkbook,XSSFWorkbook的区别:前者是解析出来excel 2007 以前版本的,后缀名为xls的,后者是解析excel 2007 版的,后缀名为xlsx。需要针对不同的excel版本编写不同的程序,判断该用哪个workbook来对其进行解析处理,而且通常需要开发人员自己把这些方法都做相应封装,使其更面向对象,工作量有点大,还有就是要求开发高质量代码,因为是在服务器上执行的,必须解决多个客户同时请求的并发问题,和万一程序执行异常的处理问题,上例只是main方法的简单示例而已,仅供参考!

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

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

相关文章

【五分钟】看完一道有装逼解法的算法题

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 程序员小吴来源 | 五分钟学算法题目来源于 LeetCode 上第 342 号问题&#xff1a;4 的幂。题目难度为 Easy&#xff0c;目前通过率为 45.3% 。题目描述给定一个整数 (32 位有符号整数)&#xff0c;请编写一个函数来判断它是否…

企业实战_03_Redis基础命令

接上一篇&#xff1a;企业实战_02_Redis基础 https://blog.csdn.net/weixin_40816738/article/details/99204244 先启动redis服务端&#xff0c;在启动redis客户端 说明命令info查看系统信息ping测试连通性dbsizekey数量keys *查看所有的keyselect 1切换到键空间(keyspace1)…

Docker精华问答 | Docker commit如何用?

Docker 是个划时代的开源项目&#xff0c;它彻底释放了计算虚拟化的威力&#xff0c;极大提高了应用的维护效率&#xff0c;降低了云计算应用开发的成本&#xff01;使用 Docker&#xff0c;可以让应用的部署、测试和分发都变得前所未有的高效和轻松&#xff01;1Q&#xff1a;…

java channel源码_Netty 4.0 源码分析(三):Channel和ChannelPipeline

Client和server通过Channel连接&#xff0c;然后通过ByteBuf进行传输。每个Channel有自己的Pipeline&#xff0c;Pipeline上面可以添加和定义Handler和Event。Channel类1 package io.netty.channel;2 import io.netty.buffer.ByteBuf;3 import io.netty.buffer.MessageBuf;4 im…

(解决)can't connect to redis-server

编辑 vim redis.conf bind 127.0.0.1 添加本机IP地址 protected-mode no //将yes改为no yes为保护模式 requirepass gblfy//找到此处设置密码 ./redis-server ../redis.conf //重启redis ./redis-cli -a gblfy shutdown//关闭redis

一拍即合、一见钟情之后,智慧城市的“福利”来啦……

戳蓝字“CSDN云计算”关注我们哦&#xff01;“未来双方的合作会针对智慧城市、智慧建筑以及智慧地域开发等领域开展创新型的解决方案&#xff0c;这种创造对于目前已经存在的&#xff0c;该领域技术甚至是竞争对手都是一个强大的震撼与颠覆。”达索系统董事会副主席兼首席执行…

Springboot部署到Tomcat,可以不带项目名进行访问

文章目录1. 进入tomcat的conf目录2. 编辑server.xml2.1. 修改第一处2.2. 修改第二处2.3. 发布war包2.4. 浏览器请求2.5. windows样例1. 进入tomcat的conf目录 cd /app/tomcat8081/conf/2. 编辑server.xml Tomcat9使用war包设置默认项目需要设置下server.xml就行 vim server.…

python ndarray append_9-Python-NumPy数组元素的添加与删除

数组元素的添加与删除 相关函数列表如下&#xff1a;函数元素及描述resize返回指定形状的新数组append将值添加到数组末尾insert沿指定轴将值插入到指定下标之前delete删掉某个轴的子数组&#xff0c;并返回删除后的新数组unique查找数组内的唯一元素1)返回指定大小的新数组num…

Java -jar 如何在后台运行项目

演示项目&#xff1a; GitHub链接&#xff1a;https://github.com/gb-heima/java-jar-nohup zip下载链接&#xff1a;https://github.com/gb-heima/java-jar-nohup/archive/master.zip git下载地址&#xff1a; git clone gitgithub.com:gb-heima/java-jar-nohup.git编译打包 …

裁员1700人,IBM 声称内部调整团队;谷歌将以26亿美元全现金收购Looker,绝对大手笔...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 贝索斯旗下蓝色起源将登月球…

修改Tomcat默认的端口

文章目录1. 进入/app/tomcat8081/conf&#xff0c;编辑server.xml文件2. 修改3个端口2.1. 第一个&#xff1a;停止端口&#xff0c;默认8005&#xff0c;修改为80062.2. 第二个&#xff1a;修改http访问端口&#xff0c;默认8080修改为80812.3. 第三个&#xff1a;修改APJ端口&…

Lambda 表达式有何用处?

戳蓝字“CSDN云计算”关注我们哦&#xff01;我们知道&#xff0c;对于一个Java变量&#xff0c;我们可以赋给其一个“值”。如果你想把“一块代码”赋给一个Java变量&#xff0c;应该怎么做呢&#xff1f;比如&#xff0c;我想把右边那块代码&#xff0c;赋给一个叫做aBlockOf…

ideal2018提示内存不足_基于IDEA2018卡死不动的解决方式(好用)

相信大多数人用IDEA开发的时候都会遇到卡顿或者直接卡死的情况,在IDEA2017.1版本之前idea启动是非常慢的,而IDEA2018版本的启动速度和内存占用以及使用流畅度都比IDEA2017好太多(本人亲测).所以版本更新是必要的.但当你更新版本后问题来了!请欣赏以下我呕心沥血的填坑过程&…

Java Web项目_order下载、运行

项目简介&#xff1a; order为GitHub开源项目&#xff0c;作为java web测试的参考项目&#xff0c;可以快速编译打包运行&#xff0c;UI设计采用bootstrap页面美观&#xff01; 文章目录一、 order项目下载1.1. 项目链接&#xff1a;1.2. zip包下载链接&#xff1a;1.3. GitHub…

纯粹,极致!他用两个词阐释了UCloud

“我觉得有一个词是肯定的&#xff1a;纯粹&#xff0c;另一个词可能是极致。但这个词我有些犹豫&#xff0c;因为我们做的还不够好。”UCloud技术副总裁杨镭在UCloud用户大会期间接受老孙独家采访时这样形容UCloud。 UCloud技术副总裁杨镭关于UCloud&#xff1a;一家简单、纯粹…

java gc堆中的分区_jvm内存各个区域详解

内存区域划分Java虚拟机所管理的内存区域分为如下部分&#xff1a;方法区、GC堆、虚拟机栈、本地方法栈、PC程序计数器。其中方法区、GC堆是所有线程共享的&#xff1b;虚拟机栈、本地方法栈、PC程序计数器是各个线程独占的。image.pngPC程序计数器程序计数器可以看做是当前线程…

tomcat9 启动中提示 org.apache.catalina.webresources.Cache.getResource Unable to add t

错误提示&#xff1a; org.apache.catalina.webresources.Cache.getResource Unable to add the resource at xxx to the cache because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the ca…

157 亿美元 !Salesforce 收购 Tableau !微软发布警告,表明黑客利用Office漏洞发动垃圾邮件攻击……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 荣耀在成都的全球首家Life概…

Git 远程配置_03

文章目录1. 生成SSH key 认证证书2. 查看公钥3. 拷贝公钥的内容&#xff0c;并设置到github中远程配置就是怎样和远程仓库建立连接? 1. 在本地生成公钥和私钥(认证证书) 2. 把本地生成的公钥复制到远程仓库的ssh key中保存1. 生成SSH key 认证证书 ssh-keygen -t rsa -C &qu…

Jenkins修改管理员密码

Jenkins的加密方式 Jenkins 的密码采用的是Java加解密工具 jBCrypt&#xff0c;我也是第一次接触到这种加密方式&#xff0c;实在被他惊叹到了&#xff01;这种加密方式每次加密同一个明文竟然都是得到不一样的结果&#xff0c;那他又是通过怎样的方式来解密的呢&#xff1f;原…