.计数器定义在 循环读取sheet的 循环里面不就好了么....
public static void main(String[] args) throws Exception {FileInputStream fileInputStream = new FileInputStream("path")
Workbook workbook = new HSSFWorkbook(fileInputStream) //读取excel
for (int i = 0 i < workbook.getNumberOfSheets() i++) {
Sheet sheet = workbook.getSheetAt(i)//获取sheet
int count = 0 //总条数 第二个sheet自动归0
for (int j = 0 j < sheet.getPhysicalNumberOfRows() j++) {
Row row = sheet.getRow(j) // 获取行
// count++ //按行的话
for (int k = 0 k < row.getPhysicalNumberOfCells() k++) {
Cell cell = row.getCell(k) //获取单元格
// count ++ 按单元格的话
}
}
}
}
/***
* <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 = 0i <pagesi++) {
//这里读取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 = startRowr <rowsr++) {
data = new HashMap<String, Object>()
// 行循环,Excel的行列是从(0,0)开始
for (int c = startColc <colsc++) {
Cell excelRows = sheet.getCell(c, r)
data.put("bgbh", excelRows.getContents())
}
alldata.add(data)
}
}
ins.close()
return alldata
}
设置sheet名称和单元格内容为中文wb.setSheetName(n, "中文",HSSFCell.ENCODING_UTF_16)
cell.setEncoding((short) 1)
cell.setCellValue("中文")