如何解决接口工作簿,工作表和行与Classess XSSFWorkbook,XSSFSheet的混淆
以下是访问excel工作表的所有单元格的简单代码。我没上课 XSSFWorkbook,XSSFSheet ...等 我的困惑是,如果接口仅持有方法的签名,那我怎么能 使用接口的getRow,getCell之类的方法?
(在我键入工作表然后键入句点时列出的那些定义的方法在哪里)
谢谢。
FileInputStream inputStream = new FileInputStream("C:\\Eclipse\\WorkSpace\\YPractice\\TestCase.xlsx");
Workbook guru99Workbook = null;
guru99Workbook = new XSSFWorkbook(inputStream);
Sheet sheet = guru99Workbook.getSheet("KeywordFramework");
int RowNum = sheet.getLastRowNum() - sheet.getFirstRowNum();
for (int i = 0; i<=RowNum; i++)
{
Row row = sheet.getRow(i);
for(int j= 0; j<row.getLastCellNum(); j++)
{
System.out.println("Data = " +i + " " +row.getCell(j));
}
}
解决方法
您在执行以下操作时正在使用XSSFWorkbook
的{{1}}实现:
Workbook
稍后您在guru99Workbook = new XSSFWorkbook(inputStream);
上使用getSheet()
。假设guru99Workbook
是guru99Workbook
,您将获得一个XSSFWorkbook
的回报。
这类似于:
XSSFSheet
要回答第二个问题,方法在以下列表中列出:
-
List<String> list = new ArrayList<>();
:getSheet(String name)
-
XSSFWorkbook
:getRow(int rownum)
,getFirstRowNum()
,getLastRowNum()
-
XSSFSheet
:getLastCellNum()
getCell(int cellnum)
在getRow(int)
中定义了Sheet
interface方法,这就是为什么您可以从Sheet
sheet
变量中调用它的原因。同样,getCell(int)
是在Row
界面中定义的,因此可以通过您的Row
类型的row
变量进行访问。
您关于Java接口如何工作的直觉是完全正确的。您可能误读了Sheet
和Row
接口的文档。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。