【问题标题】:Apache POI set selected cell after xls document opensxls文档打开后Apache POI设置选定的单元格
【发布时间】:2011-03-28 13:42:43
【问题描述】:

我们有下一个情况:我们的系统有 xls 格式的数据导出,这是一个包含许多行和列的巨大文件。 在用户下载并打开文档后,他看到文档滚动到最后一列和最后一个电子表格选项卡。这很烦人,最好将焦点设置在第一个选项卡和第一个单元格上。我做了简单的测试代码来看看它是如何工作的:

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();
}
}

这不起作用。

【问题讨论】:

  • 日志是什么?我的意思是你有什么错误吗?
  • 不,有任何错误,api 不起作用

标签: java excel apache-poi xls


【解决方案1】:

这是可行的解决方案,找到了这个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();

【讨论】:

  • 看起来很像this问答。
  • 这个解决方案似乎对我不起作用。我正在使用 XSSFWorkbook。这是唯一的区别。
  • 仅适用于 HSSFWorkbook。对于 XSSFWorkbook,您必须使用 this solution
【解决方案2】:

这对我有用:

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

【讨论】:

    猜你喜欢
    • 2013-07-07
    • 1970-01-01
    • 2019-07-03
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 2014-02-23
    相关资源
    最近更新 更多