2011-03-28 99 views
9

我們有下一種情況:我們的系統有xls格式的數據導出,這是很多行和列的大文件。 用戶下載並打開文檔後,他看到文檔滾動到最後一列和最後一個電子表格選項卡。這非常煩人,最好把焦點放在第一個標籤和第一個單元格上。我做了簡單的測試代碼,看看它是如何工作的:xls文件打開後Apache POI設置選中的單元格

public class SelectionTest { 
public static String file = "/usr/test/poi.test/src/main/resources/test"; 
@Test 
public void test() throws FileNotFoundException, IOException { 
    HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file)); 
    HSSFSheet s = wb.getSheetAt(0); 
    s.setActive(true); 
    HSSFRow row = s.getRow(0); 
    HSSFCell cell = row.getCell(0); 
    cell.setAsActiveCell(); 
    FileOutputStream out = new FileOutputStream(file); 
    wb.write(out); 
    out.close(); 
} 
} 

而這不起作用。

+0

什麼日誌?我的意思是你有任何錯誤? – GuruKulki 2011-03-28 13:53:16

+0

不,任何錯誤,api只是不工作 – abovesun 2011-03-28 14:31:05

回答

6

這裏是工作的解決方案,發現這here

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file)); 
    HSSFSheet s = wb.getSheetAt(0); 
    wb.setActiveSheet(0); 
    s.showInPane(0, 0); 
    FileOutputStream out = new FileOutputStream(file); 
    wb.write(out); 
    out.close(); 
+0

看起來很像[this](http://stackoverflow.com/q/5964598/701884)問題和答案。 – Wivani 2011-09-23 10:37:45

+0

這個解決方案似乎不適合我。我正在使用XSSFWorkbook。這是唯一的區別。 – yaswanth 2017-07-13 06:21:49

+0

只適用於HSSFWorkbook。對於XSSFWorkbook,您必須使用[此解決方案](https://stackoverflow.com/questions/44903464/is-there-any-way-to-move-horizo​​ntal-scroll-bar-the-sheet-one-column-to-左邊) – Luke 2018-02-07 10:45:25

1

這爲我工作:

sheet.setActiveCell(new CellAddress(0, 0));