このコードを使用して、ODF のシートから最大行数を取得しています
public int getRowCount(String sheetName) throws XPathExpressionException, Exception
{
//reset rowCount to zero
rowCount=0;
//xpath to reach Nodes of cell in first row
int parameterCount=getColumnCount(sheetName);
//System.out.println("Debug:ParameterCount="+parameterCount);
for (int i=1;i<=parameterCount;i++)
{
String xpathStr="//table:table[@table:name='"+sheetName+"']/table:table-row/table:table-cell["+i+"][@office:value-type='void']";
DTMNodeList nodeList = (DTMNodeList) xpath.evaluate(xpathStr, spreadSheet.getContentDom(), XPathConstants.NODESET);
//System.out.println("Debug:RowsFoundWithData="+nodeList.getLength());
System.out.println(nodeList.getLength());
for(int j=0 ; j<nodeList.getLength();j++)
{
System.out.println("Debug:RowValue="+nodeList.item(j).getTextContent());
}
if(nodeList.getLength()-1>rowCount)
{
rowCount=nodeList.getLength()-1;
}
}
return rowCount;
}
しかし、このコードは非整数値カウントのみを返します。シート内の列の行に整数値が含まれている場合、それはスキップされ、この関数によって返される行カウントは無効です
英数字の値の行のみをカウントします
正しい行数を取得する方法はありますか
odfdom-java-0.8.7-jar-with-dependencies を使用した JAR