我正在尝试确保打开文件时XLSX工作表位于左上方。

XSSFSheet具有getTopCol()getLeftCol()方法,但是没有设置器。

XSSFSheet.showInPane(int, int)起作用,但仅当窗格冻结或拆分时才起作用。

    PaneInformation pane = sheet.getPaneInformation();
    if (pane == null) {
        // FIXME doesn't work when there is no pane
        sheet.showInPane(CellAddress.A1.getRow(), CellAddress.A1.getColumn());
    } else {
        // OK
        sheet.showInPane(pane.getHorizontalSplitPosition(), pane.getVerticalSplitPosition());
    }


我试图查看可以从XSSFSheet类访问的内容,但是所有基础方法都是私有的。

有人知道将工作表视图重置为左上角单元格的方法吗?

最佳答案

似乎没有直接通过POI对象进行的设置。但是CTWorksheet是可能的。 http://grepcode.com/file/repo1.maven.org/maven2/org.apache.poi/ooxml-schemas/1.1/org/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorksheet.java#CTWorksheet

...
((XSSFSheet)sheet).getCTWorksheet().getSheetViews().getSheetViewArray(0).setTopLeftCell("D10");
...


获得此类信息的最佳可能性是直接使用Excel创建一个简单文件。然后将其另存为*.xlsx。然后解压缩该文件,并在/xl/worksheets/sheet1.xml中查找。在这里您可以找到:

...
<sheetViews>
 <sheetView workbookViewId="0" tabSelected="true" topLeftCell="D10"/>
</sheetViews>
...

10-08 01:40