2014-11-25 81 views
0

当前我呈现一个包含某些产品关系的Excel文件(第一列隐藏)。 这些关系可以在Excel中更改,然后在我的程序中重新输入。Excel在Apache POI中生成后打开错误视图

如果有任何错误(无效数据),我们在该行的第一个单元格中添加一个错误并将其写入Excel文件。

当我再次打开该Excel文件(在Excel中)时,该视图显示了B列(第二列)中的每一行。 然而,第一行有一些数据,有什么办法可以强制视图再次从A开始?

亲切的问候,

尼尔斯

+1

您是否在添加错误消息后取消隐藏第一列?将文本添加到隐藏列中的单元格不会自动取消隐藏。 – cello 2014-11-25 08:43:43

+0

我试着执行'productSheet.setColumnHidden(0,false);' ,但那并不奏效。 – SgtSpeedy 2014-11-25 09:19:09

回答

0

通过下面的代码固定它:

if (sheet instanceof XSSFSheet) 
    { 
     final CTWorksheet workSheet = ((XSSFSheet) sheet).getCTWorksheet(); 
     if (workSheet != null) 
     { 
      final CTSheetViews views = workSheet.getSheetViews(); 
      if (views != null) 
      { 
       if (views.getSheetViewArray(0) != null) 
       { 
        views.getSheetViewArray(0).setTopLeftCell("A1"); 
       } 
      } 
     } 
    } 

之后,认为已经复位。因此,当Excel文件再次打开时,左上角的单元格被关注并显示。