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操作的更多相关文章

  1. Npoi导入导出Excel操作

    之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求. 在winform上面实现excel操作:http://www.cnblogs.com/Cal ...

  2. Java文件操作源码大全

    Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...

  3. Apache POI - Java Excel APIs

    文档来源:https://www.yiibai.com/apache_poi/ POI 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建,修改和显 ...

  4. jxl(Java Excel API) 使用方法 【2】

    JAVA EXCEL API简介 Java Excel是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该 API非Win ...

  5. Java Excel 导入导出(一)

    本文主要描述通过java实现Excel导入导出 一.读写Excel三种常用方式 1.JXL——Java Excel开放源码项目:读取,创建,更新 2.POI——Apache POI ,提供API给Ja ...

  6. java poi 操作

    Java POI 操作Excel(读取/写入) https://www.cnblogs.com/dzpykj/p/8417738.html Java操作Excel之Poi基本操作 https://my ...

  7. 🏆【Alibaba工具型技术系列】「EasyExcel技术专题」摒除OOM!让你的Excel操作变得更加优雅和安全

    前提概要 针对于后端开发者而言的,作为报表的导入和导出是一个很基础且有很棘手的问题!之前常用的工具和方案大概有这么几种: JXL(Java Excel API 工具服务),此种只支持xls的文件格式, ...

  8. Java实现操作dos命令

    java实现操作dos命令的两种方式 1.读取文件中的命令 package com; import java.io.InputStream; public class cmd { public sta ...

  9. JAVA 链表操作:循环链表

    主要分析示例: 一.循环链表简述 二.单链表循环链表 三.双链表循环链表 一.循环链表简述 循环链表即链表形成了一个循环的结构,尾节点不再指向NULL,而是指向头节点HEAD,此时判定链表的结束是尾节 ...

  10. Delphi Excel 操作大全

    Delphi Excel 操作大全 (一) 使用动态创建的方法首先创建 Excel 对象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObj ...

随机推荐

  1. 如何将sql文件导入数据库

    打开navicat.exe,点击打开数据库,右键-运行SQL文件,选中要运行的sql文件,确定后再点击表即可. 注意:此次改变后,源sql文件可以转移路径

  2. 六、JavaScript之调用外部JavaScript文件

    一.外部JavaScript文件,不需要写<SCRIPT>标签,myScript.js代码如下: 二.index.php代码如下 三.运行效果如下 四.点击之后 myScript.php如 ...

  3. 020-PHP浏览目录

    <?php // 使用表格浏览目录的结构 print("<TABLE BORDER= '1'>"); // 创建表格的头 print("<TR&g ...

  4. MSP430系列单片机笔记00

    嵌入式系统 嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会( U.K. Institution of Elect ...

  5. 修改ssh主机名

    三台机器的配置相似,以zk1为例 1.修改hostname vi /etc/hostname zk1 2.修改hosts文件 vi /etc/hosts 10.45.48.233 zk1 10.45. ...

  6. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:SSM(Spring+Spring MVC+MyBatis)框架整合搭建详细步骤

    因为 Spring MVC 是 Spring 框架中的一个子模块,所以 Spring 与 SpringMVC 之间不存在整合的问题.实际上,SSM 框架的整合只涉及 Spring 与 MyBatis ...

  7. ACM-单词接龙

    题目描述:单词接龙 问题描述:单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们己知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙" 中出现 ...

  8. 一、VIP课程:互联网工程专题 04-Maven私服使用与插件开发

    第四课:Maven私服构建与插件开发.docx 一.maven 生命周期 知识点概要: 生命周期的概念与意义 maven 三大生命周期与其对应的phase(阶段) 生命周期与插件的关系 生命周期与默认 ...

  9. 执行 composer update 命令的时候报 Your requirements could not be resolved to an installable set of packages. 错误

    Your requirements could not be resolved to an installable set of packages. 以上原因:不匹配composer.json要求的版 ...

  10. 21 ~ express ~ 内容详情展示 和 阅读数处理

    1,前台 ,/views/main/index.html ,将文章 id 通过url 传送给后台 {% for content in contents %} <div class="p ...