Java 从ApachePOI3.2读取Excel(XLS)数据中的不同格式
我正在尝试使用JDK1.4和ApachePOI3.2读取XLS(2007格式)文件。 我在文件中已经有几行是文本格式的(右键单击->格式化单元格->文本) 我在文件中手动添加了几行,没有任何文本格式,假设新添加的行的格式是原始的 POI无法读取后来添加的行。 只有当新添加的行也被格式化为文本时,它才能读取它们 代码如下所示:Java 从ApachePOI3.2读取Excel(XLS)数据中的不同格式,java,excel,apache-poi,Java,Excel,Apache Poi,我正在尝试使用JDK1.4和ApachePOI3.2读取XLS(2007格式)文件。 我在文件中已经有几行是文本格式的(右键单击->格式化单元格->文本) 我在文件中手动添加了几行,没有任何文本格式,假设新添加的行的格式是原始的 POI无法读取后来添加的行。 只有当新添加的行也被格式化为文本时,它才能读取它们 代码如下所示: HSSFSheet sheet = workBook.getSheetAt(sheetno); int rowStart = sheet.getFirstRowNum()
HSSFSheet sheet = workBook.getSheetAt(sheetno);
int rowStart = sheet.getFirstRowNum();
//int rowEnd = sheet.getLastRowNum();
int rowEnd = sheet.getPhysicalNumberOfRows();
for (int rowNum = rowStart; rowNum <= rowEnd; rowNum++)
{
HSSFRow row = (HSSFRow) sheet.getRow(rowNum);
Vector cellStoreVector=new Vector();
int current = 0, next = 1;
for (int colNum = row.getFirstCellNum(); colNum < row.getLastCellNum(); colNum++)
{
HSSFCell cell = (HSSFCell) row.getCell(colNum);
currentCell = cell.getColumnIndex();
current = cell.getColumnIndex();
if (current < next)
{
cellStoreVector.addElement(cell);
}
else
{
int loop = current - next;
for (int k = 0; k < loop + 1; k++)
{
cellStoreVector.addElement("");
next = next + 1;
}
}
next = next + 1;
}
}
2) 利用
sheet.getPhysicalNumberOfRows(); and
sheet.getLastRowNum();- Results in the same no. of rows being iterated.
以前有人在Excel文件中遇到过类似的问题吗?任何帮助都将不胜感激
谢谢,
ArihantAFAIK POI从3.7版开始提供Excel 2007+支持。POI 3.2现在已经快5年了,您为什么不使用更新的版本?Luiggi Mendoza-我只想为XLS运行它,所以不需要最新的POI。@Gagravarr-SAP门户使用JDK1.4,因此需要降级版本的POI。
sheet.getPhysicalNumberOfRows(); and
sheet.getLastRowNum();- Results in the same no. of rows being iterated.