Java 如何获取读取excel文件的最后一列索引?
使用ApachePOIAPI读取Java 如何获取读取excel文件的最后一列索引?,java,apache-poi,xssf,Java,Apache Poi,Xssf,使用ApachePOIAPI读取xlsx文件时,如何获取最后一列的索引 有一个getLastRowNum方法,但我找不到与列数相关的任何内容 编辑: 我正在处理XLSX文件我认为您必须遍历行并检查每一行。检查每一行并调用Row.getLastCellNum()最大单元格编号是最后一列编号 Row r = sheet.getRow(rowNum); int maxCell= r.getLastCellNum(); 要了解具有任何行的值的最后一列,首先需要获取该行,然后才能找到具有值的最后一列
xlsx
文件时,如何获取最后一列的索引
有一个getLastRowNum
方法,但我找不到与列数相关的任何内容
编辑:
我正在处理
XLSX
文件我认为您必须遍历行并检查每一行。检查每一行并调用Row.getLastCellNum()
最大单元格编号是最后一列编号
Row r = sheet.getRow(rowNum);
int maxCell= r.getLastCellNum();
要了解具有任何行的值的最后一列,首先需要获取该行,然后才能找到具有值的最后一列 语法:
sheet.getrow(RowNumber).getLastCellNum();
RowNumber
-->是要知道最后一列有值的行号请尝试以下功能:
private void maxExcelrowcol() {
int row, col, maxrow, maxcol;
//Put file name here for example filename.xls
String filename = "filename.xls";
static String TAG = "ExelLog";
//you can use 'this' in place of context if you want
Context context = getApplicationContext();
try {
// Creating Input Stream
File file = new File(context.getExternalFilesDir(null), filename);
FileInputStream myInput = new FileInputStream(file);
// Create a POIFSFileSystem object
POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
// Create a workbook using the File System
HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);
// Get the first sheet from workbook
HSSFSheet mySheet = myWorkBook.getSheetAt(0);
//Row iterator
Iterator rowIter = mySheet.rowIterator();
while (rowIter.hasNext()) {
HSSFRow myRow = (HSSFRow) rowIter.next();
//Cell iterator for iterating from cell to next cell of a row
Iterator cellIter = myRow.cellIterator();
while (cellIter.hasNext()) {
HSSFCell myCell = (HSSFCell) cellIter.next();
row = myCell.getRowIndex();
col = myCell.getColumnIndex();
if (maxrow < row) {
maxrow = row;
}
if (maxcol < col) {
maxcol = col;
}
}
}
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
}
private void maxExcelrowcol(){
int row,col,maxrow,maxcol;
//在此处输入文件名,例如filename.xls
字符串filename=“filename.xls”;
静态字符串TAG=“ExelLog”;
//如果需要,可以使用“this”代替上下文
Context=getApplicationContext();
试一试{
//创建输入流
File File=新文件(context.getExternalFilesDir(null),文件名);
FileInputStream myInput=新的FileInputStream(文件);
//创建一个POIFSSystem对象
POIFSFileSystem myFileSystem=新的POIFSFileSystem(myInput);
//使用文件系统创建工作簿
HSSFWorkbook myWorkBook=新的HSSFWorkbook(myFileSystem);
//从工作簿中获取第一张工作表
HSSFSheet mySheet=myWorkBook.getSheetAt(0);
//行迭代器
迭代器rowIter=mySheet.rowitter();
while(rowIter.hasNext()){
HSSFRow myRow=(HSSFRow)rowIter.next();
//单元格迭代器,用于从一行的单元格迭代到下一个单元格
迭代器cellIter=myRow.cellIterator();
while(cellIter.hasNext()){
HSSFCell myCell=(HSSFCell)cellIter.next();
row=myCell.getRowIndex();
col=myCell.getColumnIndex();
如果(maxrow|
对于XLSX文件,唯一需要更改的是HSSF到XSSF。感谢您的回答。如果您还可以在代码中添加一些注释,那就太好了。这有助于人们更好地理解你的答案。