Apache poi为XSSFSheet设置页面布局

时间:2017-08-09 00:51:02

标签: excel apache-poi

我正在尝试使用apache poi在excel文件中设置页面布局。我使用以下代码:

  FileInputStream fs = new FileInputStream("Test.xlsx");
  xssfWorkbook = new XSSFWorkbook(fs);
  XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
  CTSheetView view = sheet.getCTWorksheet().getSheetViews().getSheetViewArray(0);
  view.setView(STSheetViewType.PAGE_LAYOUT);

如果我创建一个新工作表并在其上调用该函数,它工作正常。但是,如果我打开现有的Excel文件并尝试在页面布局中设置所有工作表,则会出现异常。因为在这种情况下,sheet.getCTWorksheet()。getSheetViews()返回null。如何实现现有excel文件的页面布局?我非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

基本上,如果CTSheetView不存在,则需要添加WorkbookViewId并设置 CTSheetView view; if(sheet.getCTWorksheet().getSheetViews() == null){ sheet.getCTWorksheet().addNewSheetViews().addNewSheetView(); view = sheet.getCTWorksheet().getSheetViews().getSheetViewArray(0); view.setWorkbookViewId((long)0); } else { view = sheet.getCTWorksheet().getSheetViews().getSheetViewArray(0); } view.setView(STSheetViewType.PAGE_LAYOUT); 。修改后的代码如下:

setup-gcc.sh

感谢Axel Richter的帮助。