0
모델에서 생성 한 xls 책을 하드 드라이브에 저장하는 데 문제가 있습니다. 내가 문제 스프링스 AbstractExcelView
및모델에서 새로 생성 된 xls 파일을 저장하는 방법 Spring MVC
protected void buildExcelDocument(Map<String, Object> model,
HSSFWorkbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception
를 사용하고있어 내가 파일을 저장하고 저장을 클릭 할 수있는 장소를 선택 사용자, 사용자 화면에 팝업 창을 위해 나는 방법을 만들 수 없다는 것입니다.
//This class makes convertation from Spring MVC model to excel document
public class PagetoExcelConverter extends AbstractExcelView{
List<FormDate> attributesList = null;
//Create massive of constants for making table header
private final String[] HEADER_NAMES_MASSIVE = {"Name", "Type", "Date", "Description"};
@SuppressWarnings("unchecked")
@Override
protected void buildExcelDocument(Map<String, Object> model,
HSSFWorkbook workbook, HttpServletRequest request,
HttpServletResponse response) throws Exception {
//Creating new instance of ArrayList for add model attributes to
attributesList = new ArrayList<FormDate>();
//Adding model attributes to ArrayList
attributesList.addAll((List<FormDate>)model.get("findAttributes"));
//Creating sheet inside of book with given name
Sheet sheet = workbook.createSheet("Result");
sheet.autoSizeColumn(0);
//Making first row as a header
Row headerRow = sheet.createRow(0);
//Creating head for table by iterating over HEADER_NAMES_MASSIVE
for(int i=0; i<HEADER_NAMES_MASSIVE.length; i++) {
Cell headCell = headerRow.createCell(i);
headCell.setCellValue(HEADER_NAMES_MASSIVE[i]);
headCell.setCellStyle(headCellstyle);
}
int rowNumber=1;
//Add data to table by iterating over and attributes
for(int i=0; i<attributesList.size(); i++) {
Row dataRow = sheet.createRow(rowNumber);
Cell dataCell;
int cellNumber=0;
dataCell = dataRow.createCell(cellNumber);
dataCell.setCellValue(attributesList.get(i).getFormDescriptionList().get(i).getInstitutions().getNameOfInstitution());
cellNumber++;
dataCell = dataRow.createCell(cellNumber);
dataCell.setCellValue(attributesList.get(i).getFormDescriptionList().get(i).getInstitutionType().getTypeOfInstitution());
dataCell.setCellStyle(dataCellstyle);
cellNumber++;
dataCell.setCellValue(attributesList.get(i).getParticularDate());
cellNumber++;
dataCell = dataRow.createCell(cellNumber);
dataCell.setCellValue(attributesList.get(i).getFormDescriptionList().get(i).getDaySchedule());
dataCell.setCellStyle(dataCellstyle);
cellNumber++;
dataCell = dataRow.createCell(cellNumber);
dataCell.setCellValue(attributesList.get(i).getFormDescriptionList());
cellNumber++;
}
attributesList = null;
}
}
그래서, 나는이 코드 조각을 넣으면 :
FileOutputStream fos = new FileOutputStream("/home/vadim/Desktop/mybook.xls");
workbook.write(fos);
그것은 내가 그것을 저장 포인트 파일을 저장합니다. 그러나 나는 사용자를 위해 작은 창을 팝업하고 싶습니다. 웹 애플리케이션/WEB-INF/클래스에서
내 view.properties : 서블릿 컨텍스트에서
#This view property triggered from org.springframework.web.servlet.view.ResourceBundleViewResolver for xls converting
#Here is xlspage is name of the jsp page, is tied in with (class) with do converting model to xls
xlspage.(class)=edu.demidov.service.PagetoExcelConverter
내 ViewResolvers를 선언 : 당신은 엑셀 뷰에 대한 XmlViewResolver을 작성해야
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/classes directory. Goes first -->
<beans:bean id="xlsviewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<beans:property name="order" value="1" />
<beans:property name="basename" value="views"/>
</beans:bean>
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean id="jspviewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
선생님, 저는 서블릿 컨텍스트에 viewResolver가 있습니다. 또한 모델 데이터를 가져 와서 내 xls 책을 만듭니다. 그러나 왜 모든 준비가되어 있고 저장 준비가되었을 때 나는 창을 보여주지 못합니다. –
대개 컨트롤러에서 ModelAndView를 반환하면 (위의 대답과 같이) 해당 창 (파일을 저장하거나 열 수있는 위치를 선택)이 표시됩니다. –
나는했는데 somefile하지만 xls 파일로 창을 팝업. 내 파일은 확장자가없는 내 URL 성입니다. 어떻게해야합니까?> ?? –