gpt4 book ai didi

JAVA ODFDOM : How to get integer values from ODF sheet

转载 作者:行者123 更新时间:2023-12-01 15:23:45 33 4
gpt4 key购买 nike

我使用此代码从 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;

}

但是此代码仅返回非整数值计数,如果工作表中列的任何行包含整数值,则它会跳过它,并且此函数返回的行计数无效

它只计算字母数字值行

有什么方法可以得到正确的行数

JAR 使用了 odfdom-java-0.8.7-jar-with-dependencies

最佳答案

虽然我认为您自己已经找到了答案,但我也遇到了类似的问题。对于这个本来很棒的工具,很难找到合适的例子。这是您在电子表格中所期望的:

OdfSpreadsheetDocument ods = OdfSpreadsheetDocument.newSpreadsheetDocument();
OdfTable table = SpreadsheetHandling.setNewTable(ods, "names");
System.out.println("Number of rows: " + table.getRowCount());

不幸的是,情况有些复杂。当您在电子表格中并执行向工作表添加行的代码时,此方法是否会返回确切的行数。但是,当它加载文档然后读取行数时,它将返回可能的最大行数,因此:1048576。

但是,可以使用表中行类型的节点数。

OdfSpreadsheetDocument ods = OdfSpreadsheetDocument.newSpreadsheetDocument();
OdfTable table = SpreadsheetHandling.setNewTable(ods, "rowCount");
TableTableElement tte = table.getOdfElement();
NodeList nl = tte.getElementsByTagName("table:table-row");
System.out.println("Number of nodeelements: " + nl.getLength());

谨致问候,

洛克

关于JAVA ODFDOM : How to get integer values from ODF sheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10486302/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com