2014-11-25 58 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文件再次打開時,左上角的單元格被關注並顯示。