怎么用Java读取两个Excel里的数据并进行
2个回答
展开全部
/**
*
*标题:readExcel*描述:读取Excel文件数据* @param excelfilePath Excel文件路径
* @param startRow 开始行
* @param startCol 开始列
* @return List>
* @throws IOException
* @throws BiffException
*/
public List> 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> alldata = new ArrayList>();
Map 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();
// 行循环,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;
}
*
*标题:readExcel*描述:读取Excel文件数据* @param excelfilePath Excel文件路径
* @param startRow 开始行
* @param startCol 开始列
* @return List>
* @throws IOException
* @throws BiffException
*/
public List> 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> alldata = new ArrayList>();
Map 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();
// 行循环,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;
}
2020-01-05
展开全部
可以用GCExcel这个组件,GCExcel涵盖了目前几乎所有的Excel基本操作,并且可以无损导入/导出 Excel 文件,包括数据透视表、图表、注释、条件格式、数据验证、公式、形状、图片、迷你图和表格,完全参照Excel的规范。适用于所有 Java 6.0 及以上标准的平台,无需 Microsoft Excel 依赖 ,即可快速批量操作 Excel 文件,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |