Java--Excel操作
public static List<Info> readXml(String fileName, Map<String, Fuck> pcMap) throws Exception{
boolean isE2007 = false; //判断是否是excel2007格式
if(fileName.endsWith("xlsx"))
isE2007 = true;
try {
InputStream input = new FileInputStream(fileName); //建立输入流
Workbook wb = null;
//根据文件格式(2003或者2007)来初始化
if(isE2007) {
wb = new XSSFWorkbook(input);
} else {
wb = new HSSFWorkbook(input);
}
Sheet sheet = wb.getSheetAt(0); //获得第一个表单
Iterator<Row> rows = sheet.rowIterator(); //获得第一个表单的迭代器
//初始化列标
Map<String, Integer> map = new HashMap<String, Integer>();
if(rows.hasNext()) {
Row row = rows.next();
Iterator<Cell> cells = row.cellIterator();
int i = 0;
while(cells.hasNext()) {
Cell cell = cells.next();
if(map.containsKey(cell.toString())) {
continue ;
}
map.put(cell.toString(), i++);
}
}
// for(Map.Entry<String, Integer> set : map.entrySet()) {
// System.out.println(set.getKey() + " " + set.getValue());
// }
//取数据
List<Info> dataList = new ArrayList<Info>();
while (rows.hasNext()) {
Row row = rows.next(); //获得行数据
// System.out.println("Row #" + row.getRowNum()); //获得行号从0开始
Iterator<Cell> cells = row.cellIterator(); //获得第一行的迭代器
String msg = "";
if(cells.hasNext()) {
Cell cell = cells.next();
cell.setCellType(Cell.CELL_TYPE_STRING);
Info info = new Info();
Cell org_noCell = row.getCell(map.get("美国编号"));
org_noCell.setCellType(Cell.CELL_TYPE_STRING);
info.setOrg_no(org_noCell.toString());
Cell org_nameCell = row.getCell(map.get("餐厅名字"));
org_nameCell.setCellType(Cell.CELL_TYPE_STRING);
info.setOrg_name(org_nameCell.toString());
Cell szcsCell = row.getCell(map.get("城市"));
szcsCell.setCellType(Cell.CELL_TYPE_STRING);
info.setSzcs(szcsCell.toString());
Cell addrCell = row.getCell(map.get("地址"));
addrCell.setCellType(Cell.CELL_TYPE_STRING);
info.setAddr(addrCell.toString());
Cell telCell = row.getCell(map.get("电话"));
telCell.setCellType(Cell.CELL_TYPE_STRING);
info.setTel(telCell.toString());
Cell taxcodeCell = row.getCell(map.get("对应纳税号"));
taxcodeCell.setCellType(Cell.CELL_TYPE_STRING);
info.setTaxcode(taxcodeCell.toString());
msg = org_noCell.toString() + org_nameCell + szcsCell + addrCell + telCell + taxcodeCell;
if("".equals(msg.trim())) {
continue ;
}
if(info != null) {
if(pcMap.containsKey(taxcodeCell.toString())) {
Fuck fuck = pcMap.get(taxcodeCell.toString());
info.setPayee(info.getOrg_no());
info.setChecker(fuck.getChecker());
}
dataList.add(info);
}
}
}
return dataList;
} catch (IOException ex) {
ex.printStackTrace();
throw new Exception("请参考模板并选择正确的文件!");
}
}
Java--Excel操作的更多相关文章
- Npoi导入导出Excel操作
之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求. 在winform上面实现excel操作:http://www.cnblogs.com/Cal ...
- Java文件操作源码大全
Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...
- Apache POI - Java Excel APIs
文档来源:https://www.yiibai.com/apache_poi/ POI 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显 ...
- jxl(Java Excel API) 使用方法 【2】
JAVA EXCEL API简介 Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该 API非Win ...
- Java Excel 导入导出(一)
本文主要描述通过java实现Excel导入导出 一.读写Excel三种常用方式 1.JXL——Java Excel开放源码项目:读取,创建,更新 2.POI——Apache POI ,提供API给Ja ...
- java poi 操作
Java POI 操作Excel(读取/写入) https://www.cnblogs.com/dzpykj/p/8417738.html Java操作Excel之Poi基本操作 https://my ...
- 🏆【Alibaba工具型技术系列】「EasyExcel技术专题」摒除OOM!让你的Excel操作变得更加优雅和安全
前提概要 针对于后端开发者而言的,作为报表的导入和导出是一个很基础且有很棘手的问题!之前常用的工具和方案大概有这么几种: JXL(Java Excel API 工具服务),此种只支持xls的文件格式, ...
- Java实现操作dos命令
java实现操作dos命令的两种方式 1.读取文件中的命令 package com; import java.io.InputStream; public class cmd { public sta ...
- JAVA 链表操作:循环链表
主要分析示例: 一.循环链表简述 二.单链表循环链表 三.双链表循环链表 一.循环链表简述 循环链表即链表形成了一个循环的结构,尾节点不再指向NULL,而是指向头节点HEAD,此时判定链表的结束是尾节 ...
- Delphi Excel 操作大全
Delphi Excel 操作大全 (一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObj ...
随机推荐
- Java8系列 (四) 静态方法和默认方法(转载)
静态方法和默认方法 我们可以在 Comparator 接口的源码中, 看到大量类似下面这样的方法声明 //default关键字修饰的默认方法 default Comparator<T> t ...
- mjpg-streamer视频服务器移植
相关软件下载地址:http://pan.baidu.com/s/16yo8Y JPEG库的移植 对于内核linux-2.6.35,不能再使用servfox,如果要使用的需要修改大量的代码.在此选用新的 ...
- 福州大学2020年春软工实践W班第二次作业
作业描述 这个作业属于哪个课程 福州大学2020年春软工实践W班 这个作业要求在哪里 寒假作业(2/2) 这个作业的目标 开发一个疫情统计程序 作业正文 福州大学2020年春软工实践W班第二次作业 其 ...
- idea 将java 项目 打包成jar包
记录一下,防止忘记.ps : 请忽略这个是web项目 1.idea 打包jar包 (1)首先打开Project Structure,选中Artifacts (2)点击绿色加号,选中jar ,然后选中f ...
- windows查看所有进程:netstat -ano
windows查看所有进程:netstat -ano ------------------------------------------------------------------------- ...
- SQL语句对MySQL数据库的操作之对数据库层面的操作
一.数据库内部存储结构 字段->数据表->数据库->MySQL服务器 二.登录及退出数据库 mysql -h服务器地址 -u用户名 -p密码(这样的登录形式并不安全) mysql - ...
- HZNU-ACM寒假集训Day11小结 贪心
1.刘汝佳紫书区间问题三大情况 1.选择不相交区间 贪心策略:一定要选择第一个区间 2.区间选点问题 贪心策略:取最后一个点 3.区间覆盖问题: n个闭区间,选择尽量少的区间覆盖一条指定线段[s,t] ...
- intellij idea 怎么全局搜索
1.Ctrl+N按名字搜索类 相当于eclipse的ctrl+shift+R,输入类名可以定位到这个类文件,就像idea在其它的搜索部分的表现一样,搜索类名也能对你所要搜索的内容多个部分进行匹配,而且 ...
- Web基础之Redis
Redis 什么是Redis?Redis是一个基于内存的非关系型数据库,简单来说就是一个可持久化的高速缓存. 常用场景: 缓存(数据查询,端链接,新闻内容,商品内容等等)--使用最多 聊天室的在线好友 ...
- jquery 版本冲突解决办法
<!-- 引入1.6.4版的jq --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jq ...