【发布时间】:2014-02-27 13:59:21
【问题描述】:
我有一个空的电子表格,但是当我使用 Apache POI(版本 3.10)访问它时,它说它有 1024 列和 20 个物理列。
我确实删除了所有单元格,只保留了一些格式,但没有内容。
如果我使用 LibreOffice Calc(版本 4.1.3.2)删除一些列,列数只会增加!怎么回事?
是否有可靠的方法来获取实际的列数(或一行中的单元格)?
import java.net.URL;
import org.apache.poi.ss.usermodel.*;
public class Test {
public static void main(final String... args) throws Exception {
final URL url = new URL("http://aditsu.net/empty.xlsx");
final Workbook w = WorkbookFactory.create(url.openStream());
final Row r = w.getSheetAt(0).getRow(0);
System.out.println(r.getLastCellNum());
System.out.println(r.getPhysicalNumberOfCells());
}
}
【问题讨论】:
-
你为什么不使用 XSSF 包?尝试使用它来读取 xlsx。
-
据我所知,具有格式的单元格已初始化,具有该样式的列也是如此。
-
@anonymous WorkbookFactory 是访问电子表格的首选方式。它根据需要在内部使用 XSSF 或 HSSF。
-
删除行后检查...
-
如果一个单元格应用了格式,那么它就不是空的!格式化信息必须存在于某个地方,并且某个地方是一个空白单元格
标签: java excel apache-poi libreoffice-calc