用java代码实现读取Excel中每个sheet页的内容,并且要与其他的Excel中某一列的值进行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java代码实现读取Excel中每个sheet页的内容,并且要与其他的Excel中某一列的值进行相关的知识,希望对你有一定的参考价值。

用java代码实现读取Excel中每个sheet页的内容,并且要与其他的Excel中某一列的值进行比较,如果符合将结果输出到resultExcel中,我的思路不太清晰,具体实现过程哪位大虾指点一下吧?

/**
*
* <p>标题:readExcel</p>
* <p>描述:读取Excel文件数据</p>
* @param excelfilePath Excel文件路径
* @param startRow 开始行
* @param startCol 开始列
* @return List<ArrayList<String>>
* @throws IOException
* @throws BiffException
*/
public List<Map<String, Object>> readExcel(String excelfilePath,int startRow, int startCol)
throws IOException, BiffException
// 读取xls文件
InputStream ins = new FileInputStream(excelfilePath);
// 设置读文件编码
WorkbookSettings setEncode = new WorkbookSettings();
setEncode.setEncoding("UTF-8");
Workbook rwb = Workbook.getWorkbook(ins, setEncode);
List<Map<String, Object>> alldata = new ArrayList<Map<String, Object>>();
Map<String, Object> data = null;
alldata.clear();
// 获得当前Excel表共有几个sheet
Sheet[] sheets = rwb.getSheets();
// 获得表数
int pages = sheets.length;
// 将excel表中的数据读取出来
// 在从Excel中读取数据的时候不需要知道每个sheet有几行,有那多少列
for (int i = 0; i < pages; i++)
//这里读取excel中每个sheet的数据,Sheet sheet = rwb.getSheet(i); 读取第二个sheet就是getSheet(1);
Sheet sheet = rwb.getSheet(i);
int cols = sheet.getColumns(); // 列
// 读取每一行对应的列数目
// 循环读取每一行的全部列数目的内容
int rows = sheet.getRows(); // 行
for (int r = startRow; r < rows; r++)
data = new HashMap<String, Object>();
// 行循环,Excel的行列是从(0,0)开始
for (int c = startCol; c < cols; c++)
Cell excelRows = sheet.getCell(c, r);
data.put("bgbh", excelRows.getContents());

alldata.add(data);


ins.close();
return alldata;
追问

大谢

参考技术A 看看poi包的api文档。追问

ok,谢了

java 用poi 操作excel 把里面的数据取出后过滤掉非法的字符等 ,在放到数据库中

楼上哥们正解... 帮你再详细点吧
解析Excle使用POI的话 ,你是直接读取文件还是做上传再来,如果上传就稍微麻烦点,直接读取比较简单
解析Exlce的话主要用到的几个类HSSFWorkbook ,Excle对象
通过他获取你的sheet ,可以通过制定名字来wb.getShee(名字);
然后通过sheet 获取行 sheel.getRow(first),通过行再获取每个单元格HSSFCell
你在获取每个单元格的时候最好先判断下是否为空这些,避免空指针
同时POI也提供了 判断取出来的值是什么类型的比如字符串这些。
过滤非法字符串这些 你可以通过Pattern.matches(),这个方法来匹配
最后将读取的excle数据封装成为集合,批量插入数据库...
加油把.... 网上有很多这种资料.. ~~
参考技术A 这个很简单 不过这包含好几个知识点 一个就是poi 可恨的表格 第二个字符串处理或者正则
第三个操作数据库 如果你现在想要做这事情 你应该对这些有所了解把
你先分开学习 写出来 然后在合并 加油

以上是关于用java代码实现读取Excel中每个sheet页的内容,并且要与其他的Excel中某一列的值进行的主要内容,如果未能解决你的问题,请参考以下文章

求问 java poi 导出多个sheet页

java代码怎么实现 excel导入的文本值转换成日期

excel的某个sheet被加密了,怎么用java打开并读取这个sheet

java用poi读取excel文件时怎么获取每个单元格的列宽?

POI导出用JDK8正籎DK7就内存溢出,怎么回事

pandas同时读取一个excel中几个sheets,并且将其中对应的列求平均值