2011-03-28 123 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));