我正在尝试使用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文件的页面布局?我非常感谢任何帮助。提前谢谢。
答案 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的帮助。