Java连接excel实现:通过姓名查找id和通过id查找姓名
注意每个方法结束都要关闭workbook;
还有getIdbyname()方法中字符串flag与name的比较,一定要用equals()方法!!!;
剩下的不多解释,注释都在代码中:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; public class DnsTest {
public static void main(String[] args) throws IOException{
getIdbyname("株洲");
getNamebyid(6) ;
}
public static void getIdbyname(String name)throws IOException {
//通过name获得id
String filePath="D://dns.xls";
InputStream input = new FileInputStream(filePath);
Workbook wb = null;
wb = new HSSFWorkbook(input);
//得到一个工作表对象;
Sheet sheet = wb.getSheetAt(0);
int rsRows = sheet.getLastRowNum();// 获取sheet表中的总行数
// 遍历行
for (int i=0;i<=rsRows;i++) {
System.out.println("遍历行数"+i);
Row row = sheet.getRow(i);
int id=0;
String flag=null;
//遍历行单元格,已知有两列;第一列int型id,第二列String型name
Cell cell1 = row.getCell(0);
Cell cell2 = row.getCell(1);
if(cell1==null||cell1.equals(null)||cell1.getCellType()==CellType.BLANK){
System.out.println("id为空");
break;
}else {
//数值型
id=(int) cell1.getNumericCellValue(); };
if(cell2==null||cell2.equals(null)||cell2.getCellType()==CellType.BLANK){
System.out.println("name为空");
break;
}else {
//字符串型
flag= cell2.getStringCellValue();
};
String a=new String(flag);
String b=new String(name);
if(a.equals(b)){
System.out.println(id);
};
}
wb.close();//记得关闭
} public static void getNamebyid(int id) throws IOException {
//通过id获得name String filePath="D://dns.xls";
InputStream input = new FileInputStream(filePath);
Workbook wb = null;
wb = new HSSFWorkbook(input);
//得到一个工作表对象;
Sheet sheet = wb.getSheetAt(0);
int rsRows = sheet.getLastRowNum();// 获取sheet表中的总行数
// 遍历行
for (int i=0;i<=rsRows;i++) {
int flag=0;
String name=null;
Row row = sheet.getRow(i);
//遍历行单元格
Cell cell1= row.getCell(0);
Cell cell2 = row.getCell(1);
if(cell1==null||cell1.equals(null)||cell1.getCellType()==CellType.BLANK){
break;
}else {
//数值型
flag=(int) cell1.getNumericCellValue(); }
if(cell2==null||cell2.equals(null)||cell2.getCellType()==CellType.BLANK){
break;
}else {
//字符串型
name= cell2.getStringCellValue();
}
if(flag==id){
System.out.println(name);
}
}
wb.close();//记得关闭
}
}
Java连接excel实现:通过姓名查找id和通过id查找姓名的更多相关文章
- JAVA连接Excel最好用的开源项目EasyExcel,官方使用文档及.jar包下载
EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. github地址:https://github.com/alibaba ...
- java连接MongoDB查询导出为excel表格
背景 因为项目需求.每一个星期须要统计每一个公众号7天的訪问数,月底就须要统计一个月的訪问数,40多个公众号.每次手动统计都须要花费1个小时,总之是一项无技术耗时耗神的手工活. 于是.想写个程序来统计 ...
- Java连接数据库完整代码 查找和插入
package test; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; ...
- java对excel表格的上传和下载处理
Excel表格文件的上传和下载,java中涉及到文件肯定会有io流的知识. 而excel文件就要涉及到poi技术,而excel的版本包括:2003-2007和2010两个版本, 即excel的后缀名为 ...
- java连接Oracle数据库
Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id ) not null primary key, ...
- Java连接Oracle数据库开发银行管理系统【三、实现篇】
说明:里面的主要代码都加的有注释部分,所以代码显得很长,如果有错误的地方,谢谢指出. 注意需要导入数据库jar包 ------------------------------------------- ...
- Java连接MySQL数据库及简单操作代码
1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...
- java连接mysql数据库(jsp显示和控制台显示)
很多事情,在我们没有做之前我们觉得好难,但是只要你静下心来,毕竟这些都是人搞出来的,只要你是人,那就一定可以明白. 配置:JDK1.8,MySQL5.7,eclipse:Neon Rel ...
- Java 连接 MySQL 数据库
最近想学习一下 Java 连接 MySQL 数据库,于是有了这样的一些问题&解决办法. 首先是解决 JDBC(Java Data Base Connectivity)驱动问题,因为默认安装的J ...
随机推荐
- MongoDB和Java(5):Spring Data整合MongoDB(注解配置)
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- k8s与监控--k8s部署grafana6.0
原文参考:https://segmentfault.com/a/1190000018335241
- django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")迁移报错解决方法
django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")迁移报错解决方法 django.db ...
- (转) Python3—UnicodeEncodeError 'ascii' codec can't encode characters in position 0-1
(转)python(三):Python3-UnicodeEncodeError 'ascii' codec can't encode characters in position 0-1 python ...
- 查找单链表中倒数第k个结点
本文转自:程序员面试题6--查找链表中倒数第k个结点 题目:输入一个单向链表,输出该链表中倒数第k个结点.链表的倒数第0个结点为链表的尾指针.链表结点定义如下: struct ListNode { i ...
- 【DATAGUARD】物理dg的failover切换(六)
[DATAGUARD]物理dg的failover切换(六) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你 ...
- shell输出文本颜色
绿地白字 echo -e "\033[42;37m 绿底白字 \033[0m"
- Gtest:死亡测试
转自:玩转Google开源C++单元测试框架Google Test系列(gtest)之五 - 死亡测试 一.前言 “死亡测试”名字比较恐怖,这里的“死亡”指的的是程序的崩溃.通常在测试过程中,我们需要 ...
- 新建本地用户连接vsftp出现530 Login incorrect
新建的用户的方式 [root@centos2 /var/ftp]# useradd -s /sbin/nologin user1 出错原因: /etc/pam.d/vsftp文件作了限制 [root@ ...
- 【转载】lr运行时设置,每个action 比例
提供了再脚本运行时所需要的相关选项. 性能测试的关键之一:能否通过脚本来完全模拟用户的行为,可以通过运行设置让脚本运行的更人性化. 1. Run Logic 脚本如何运行,每个action与actio ...